我試圖創建一個函數,它接受元素列表並遞歸返回包含該列表的所有排列(長度爲r)的列表。但是,如果列表中有-1,則應該可以重複。我想要返回的[0,-1],[-1,0],[0,2],[2,0],[0,1],[ ],[-1,2],[2,-1]和[-1,-1]。具有重複元素的排列列表
這是到目前爲止我的功能:
def permutations(i, iterable, used, current, comboList, r):
if (i == len(iterable):
return
if (len(current) == r):
comboList.append(current)
print current
return
elif (used[i] != 1):
current.append(iterable[i])
if (iterable[i][0] != -1):
used[i] = 1
for j in range(0, len(iterable)):
permutations(j+1, iterable, used, current, comboList, r)
used[i] = 0
return comboList
正如你所看到的,我錯誤地試圖保持跟蹤已經和尚未訪問過的列表中元素的利用了「訪問列表」 。
'-1'是一個醜陋的價值給予特殊待遇Python編寫的。你真的想做什麼?這些數字代表什麼? –