Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何手动获取列表中元素的所有排列?_Python - Fatal编程技术网

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()
中的代码,该代码也执行相同的操作

的文档中有一个示例实现。