これは宿題ではありません。
この記事で Linq ライブラリを称賛し、それが組み合わせ論を行う上でどれほど優れているかを賞賛しているのを見て、「 Python はもっと読みやすい方法でそれを行うことができる」と思いました。
Pythonで30分軽くたたくと、失敗しました。中断したところから終了してください。また、可能な限り最も Pythonic で効率的な方法で実行してください。
from itertools import permutations
from operator import mul
from functools import reduce
glob_lst = []
def divisible(n): return (sum(j*10^i for i,j in enumerate(reversed(glob_lst))) % n == 0)
oneToNine = list(range(1, 10))
twoToNine = oneToNine[1:]
for perm in permutations(oneToNine, 9):
for n in twoToNine:
glob_lst = perm[1:n]
#print(glob_lst)
if not divisible(n):
continue
else:
# Is invoked if the loop succeeds
# So, we found the number
print(perm)
ありがとう!