Python 如何手动获取列表中元素的所有排列?
我正在手动尝试获取列表中所有元素的排列 这是我写的代码Python 如何手动获取列表中元素的所有排列?,python,Python,我正在手动尝试获取列表中所有元素的排列 这是我写的代码 lst = [1,2,3,4] def list_forward(lst_lst): lst2 =[] for lst in lst_lst: for i in range(len(lst)): for j in range(len(lst)): lst[j],lst[i]=lst[i],lst[j] lst2.app
lst = [1,2,3,4]
def list_forward(lst_lst):
lst2 =[]
for lst in lst_lst:
for i in range(len(lst)):
for j in range(len(lst)):
lst[j],lst[i]=lst[i],lst[j]
lst2.append(lst[:])
return lst2
def perm(lst):
lst2 =[]
lst2.append(lst[:])
for i in range(len(lst)):
lst[0],lst[i]=lst[i],lst[0]
lst2.append(lst[:])
return list_forward(lst2)
l3 = perm(lst)
lset = set([tuple(t) for t in l3])
l4 = [list(t) for t in lset]
print(len(l4))
这返回23个,而我应该得到24个唯一列表。我做错了什么?我所寻找的是关于为什么其中一份清单缺失的指导 您只需查看
itertools.permutations()
中的代码,该代码也执行相同的操作
的文档中有一个示例实现。