Solution to Problem 32. Written in Python.

Problem: We shall say that an n-digit number is pandigital if it makes use of all the digits 1 to n exactly once; for example, the 5-digit number, 15234, is 1 through 5 pandigital.

The product 7254 is unusual, as the identity, 39 × 186 = 7254, containing multiplicand, multiplier, and product is 1 through 9 pandigital.

Find the sum of all products whose multiplicand/multiplier/product identity can be written as a 1 through 9 pandigital.

HINT: Some products can be obtained in more than one way so be sure to only include it once in your sum.

import sys
from problems.euler_lib import euler_lib as lib

products = []

for multiplier in range(1, 10000):
    for multiplicand in range(1, 10000):
        product = multiplier * multiplicand
        number = str(multiplier) + str(multiplicand) + str(product)

        if len(number) == 9 and lib.is_pandigital(int(number)):
            products.append(product)

print sum(lib.unique(products))