如何手动获取列表中所有元素的排列?

2024-04-18 22:49:20 发布

您现在位置: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.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个唯一的列表。我做错什么了?我要找的是为什么其中一份名单不见了。你知道吗


Tags: in列表forlenreturndefrangelist