from zMath import isPandigital upperBound = 9999 for i in range(upperBound, 0, -1): products = list() productConcatLength = 0 n = 1 while True: if productConcatLength>=9: break product = str( n * i ) products.append(product) productConcatLength += len(product) n += 1 if productConcatLength>9: continue if isPandigital(9, *products): print ''.join(products) break
from zMath import isPandigital productList = list() #2 digit x 3 digit = 4 digit for num1 in range(10, 100): for num2 in range(100, 1000): product = num1*num2 if product >= 10000: continue if isPandigital(9, num1, num2, product) and product not in productList: #print str(num1) +" x "+str(num2)+" = "+str(product) productList.append(product) #1 digit x 4 digit = 4 digit for num1 in range(1, 10): for num2 in range(1000, 10000): product = num1*num2 if product >= 10000: continue if isPandigital(9, num1, num2, product) and product not in productList: #print str(num1) + " x "+str(num2)+" = "+str(product) productList.append(product) productSum = 0 for product in productList: productSum += product print productSum