import os import sys def is_pan(val): sval = str(val) if len(sval) == 9: all_nums = set(sval) if len(all_nums) == 9 and sorted(int(x) for x in list(all_nums)) == [1,2,3,4,5,6,7,8,9]: return True return False def main(): tests = xrange(10000, 1, -1) max = 0 mults = [1,2] for test in tests: pan = 1 while len(str(pan)) <= 9: # Add a number to our multipliers pan = "".join((str(test*i) for i in mults)) if is_pan(pan): if pan > max: max = pan mults.append(mults[-1] + 1) mults = [1,2] print max if __name__ == "__main__": sys.exit(main())