Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from itertools import permutations
- def tuple_to_base(tple, base):
- size = len(tple) - 1
- return sum(val*base**(size - i) for i, val in enumerate(tple))
- def targets(num1, num2):
- unique_digits = num1 + num2
- base = 2*(num1 + num2)
- size = range(base)
- dic = dict()
- solutions = set()
- perms1 = permutations(size, num1)
- perms2 = list(permutations(size, num2))
- q = 0
- for p in perms1:
- num_p = tuple_to_base(p, base)
- str_p = str(num_p)
- for q in perms2:
- num_q = tuple_to_base(q, base)
- str_q = str(num_q)
- if len(set(str_p + str_q)) == unique_digits:
- total = num_p*num_q
- try:
- dic[total]
- temp_solution = set(dic[total][0] + dic[total][1] + p + q)
- if len(temp_solution) == base:
- num_3 = tuple_to_base(dic[total][0], base)
- num_4 = tuple_to_base(dic[total][1], base)
- print ( max(num_q, num_p) , min(num_q, num_p) , max(num_3, num_4) , min(num_3, num_4) )
- solutions.add( ( max(num_q, num_p) , min(num_q, num_p) , max(num_3, num_4) , min(num_3, num_4) ) )
- except:
- dic[total] = (p, q)
- return list(solutions)
- if __name__ == '__main__':
- print targets(3, 2)
Advertisement
Add Comment
Please, Sign In to add comment