Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.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_Permutation - Fatal编程技术网

使用递归的Python置换

使用递归的Python置换,python,permutation,Python,Permutation,我正在使用Python,我希望在考虑以下约束的同时生成列表的所有排列: 每个排列都以数字0开始 因此,我有以下列表li=[1,2,3,4],我感兴趣的是找到这4个数字的所有排列,同时将索引0处的数字0添加到每个排列中 例如: [0,1,2,3,4] [0,1,3,2,4] 等等 我将特别感谢那些不依赖于itertoolsdef create\u perm(实际列表,添加列表)的答案: """ 用于创建置换的递归函数 """ 如果len(添加列表)=1: #如果到达最后一项,请打印找到的排列

我正在使用Python,我希望在考虑以下约束的同时生成列表的所有排列:

  • 每个排列都以数字0开始
因此,我有以下列表
li=[1,2,3,4]
,我感兴趣的是找到这4个数字的所有排列,同时将索引0处的数字0添加到每个排列中

例如:

[0,1,2,3,4]

[0,1,3,2,4]

等等

我将特别感谢那些不依赖于
itertools

def create\u perm(实际列表,添加列表)的答案:
"""
用于创建置换的递归函数
"""
如果len(添加列表)=1:
#如果到达最后一项,请打印找到的排列
#(在开头添加0)
打印([0]+实际列表+添加列表)
其他:
对于添加列表中的i:
#通过删除一个项目并将其添加到找到的排列中,可以更进一步
新建添加列表=添加列表。复制()
新建添加列表。删除(i)
#进行递归
创建\u perm(实际\u列表+[i],新\u添加\u列表)
li=[1,2,3,4]
创建\u perm([],li)

那么您想将前面的0添加到排列中吗?显示您的算法应该产生的一些结果。通过将它们添加到您的问题中。请澄清您正在尝试做什么,以及您需要帮助解决的具体问题。也要重新考虑你的任务的描述——没有1,2,3,4的排列从0开始。我编辑了我的答案,我希望现在更清楚我正在努力实现什么。我想做Dani Mesejo提到的事情。你为什么不想使用itertools?这听起来像是个家庭作业问题。