Implement a verbal arithmetic solver of several same sequence of numbers added together:
TWO
+ TWO
-----
FOUR
REPEAT
REPEAT
REPEAT
+ REPEAT
--------
ANDSTOP
SPEED
+ SPEED
-------
KILLS
There are some restrictions: each letter should represent different digits, and no letter can be zero.
Implement the solver as a function of the operands, the sum and number of repetitions returns a list of solutions (solution: the tuple of resulting operand and sum). For example:
f(['T','W','O'], ['F','O','U','R'], 2) == [(734, 1468)]
You do not need to represent variables as letters, and you do not need to use a hash in the solution. Brute-force search allowed.
Shortest code wins.