python - 生成字符串排列列表的问题
问题描述
我想使用回溯算法生成字符串的所有排列的列表。
我修改了上一篇文章中的一些代码:https ://stackoverflow.com/a/20955291/12021192
def permutations(string, step = 0):
permTrack = []
if step == len(string):
permTrack.append(''.join(string))
for i in range(step, len(string)):
string_copy = list(string)
string_copy[step], string_copy[i] = string_copy[i], string_copy[step]
permutations(string_copy, step + 1)
return permTrack
permTrack = permutations('ABC')
我预期permTrack = ['ABC', 'ACB', 'BAC', 'BCA', 'CAB', 'CBA]
,但实际输出是permTrack = [ ]
。
这个想法是在基本情况下附加到列表 permTrack,当 step == len(string) 时。例如,这适用于打印排列的原始代码。
有人可以帮我解决这个问题吗?
解决方案
permutations
当它被递归调用时,您不会对返回的内容做任何事情。
如果您添加返回的内容permTrack
,您应该得到您想要的。
推荐阅读
- c# - 如果发送了某些消息,如何运行代码(Telegram Bot)
- iteration - 如何将 3D 火炬张量切片成 2D 切片
- python - 将文本字段(在 GUI 中)中的数字转换为 Python-3 中的整数
- excel - 在 VBA 用户表单中,当您输入开始时间和结束时间时,如何在第三个文本框中填充时差
- c# - 带有自签名证书的 HTTPS 流量对于桌面应用程序到服务器的连接是否足够安全?
- neo4j - apoc.path.subgraphAll 不返回图表
- python - 如果文件不存在使用 os.walk
- android - 浮动动作按钮不支持图像?
- file-sharing - 如何从该 Android 设备访问连接到我的 android 热点的 windows pc 上的文件?
- python - 如何在 CSV 文件中绘制或显示特定列?