我正在尝试在以下条件下打印数字排列
第i个位置的数字可被i整除。
i可被第i个位置的数字整除。
def permutation(lst):
if len(lst) == 0:
return []
if len(lst) == 1:
return [lst]
l = []
for i in range(len(lst)):
m = lst[i]
if m % (i + 1) == 0 or (i + 1) % m == 0:
remLst = lst[i + 1:] + lst[:i]
for p in permutation(remLst):
l.append([m] + p)
return l
当我为permutation([1,2,3))
运行输出时,
[[1, 2, 3], [2, 3, 1], [2, 1, 3], [3, 1, 2], [3, 2, 1]]
此处输出[2,3,1]
是错误的。我已添加条件,但无法过滤掉这些安排