我正在手动尝试获取列表中所有元素的排列。你知道吗
这是我写的代码。你知道吗
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()
中看到代码,它做同样的事情。你知道吗https://docs.python.org/3/library/itertools.html#itertools.permutations
相关问题 更多 >
编程相关推荐