Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.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,我想使用回溯算法生成一个字符串所有排列的列表 我修改了前一篇文章中的一些代码: def置换(字符串,步长=0): permTrack=[] 如果步骤==len(字符串): permTrack.append(“”.join(字符串)) 对于范围内的i(步长,len(字符串)): string\u copy=列表(字符串) string_copy[step],string_copy[i]=string_copy[i],string_copy[step] 排列(字符串拷贝,步骤+1) 回程磁道 排列轨

我想使用回溯算法生成一个字符串所有排列的列表

我修改了前一篇文章中的一些代码:

def置换(字符串,步长=0):
permTrack=[]
如果步骤==len(字符串):
permTrack.append(“”.join(字符串))
对于范围内的i(步长,len(字符串)):
string\u copy=列表(字符串)
string_copy[step],string_copy[i]=string_copy[i],string_copy[step]
排列(字符串拷贝,步骤+1)
回程磁道
排列轨迹=排列('ABC')
我期望
permTrack=['ABC','ACB','BAC','BCA','CAB','CBA]
,但实际输出是
permTrack=[]

其思想是,当step==len(string)时,将permTrack追加到基本情况下的列表中。例如,它可以在原始代码中打印排列


有人能帮我弄清楚这一点吗?

递归调用时,
置换
返回的内容,您不会做任何处理


如果您将返回的内容添加到
permTrack
,您应该会得到您想要的内容。

我明白我的错误,之前删除的答案也很有用。我修改了代码,在函数中添加了一个新参数:def permutations(string,step=0,permTrack=[])。然后,删除函数体中的permTrack=[]。这将产生所需的输出。谢谢。您不需要新参数;您只需获取递归调用中
permutations
返回的内容,并将其元素添加到
permTrack
中。