字符串的条件排列

时间:2018-07-26 01:58:43

标签: python-3.x permutation

我正在尝试在以下条件下打印数字排列

  

第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]是错误的。我已添加条件,但无法过滤掉这些安排

0 个答案:

没有答案