-1
我正在寫一個函數,稱爲permutate(lst,acc),它在整數列表上進行排列,找到所有可能的排列組合。例如,permutate([1,2,3],[0])應該返回[123,132,213,231,312,321],但不是按順序排列。 acc是一個累加器,它是通過遞歸進行的。到目前爲止,我有在列表上排列
def permutate(lst, acc):
if not lst:
return acc
else:
return reduce(lambda x, y: x + y,
map(lambda z: permutate(lst[:].remove(z),
map(lambda a: a * 10 + z, acc[:])), lst[:]))
當前permutate([1,3,2,5],[0])返回[1,3,2,5]。我猜這個函數並沒有進行遞歸步驟。我還通過添加[:]來避免列表可變。 有什麼想法?
不要重新發明輪子。 'itertools.permutations' – JBernardo