パンデジタル数(Pandigital Number)を見つける

問題

Need help with a number theory problem(java) : learnprogramming

3桁の数に3桁の数を足して4桁の数にする式を考える。0〜9までの数字を一度ずつ使ってこの等式を表したとき、3つの数が最小になるような組み合わせはどれか。

http://programmingpraxis.com/2012/10/30/pandigital-numbers/

解答

def is_pandigital(a, b, c):
    p = "".join(map(str, [a, b, c]))
    return len(set(p)) == 10

def min_pandigital():
    for i in range(100, 1000):
        for j in range(i, 1000):
            k = i + j
            if is_pandigital(i, j, k):
                return (i, j, k)

print min_pandigital()