python - 程序如何使用递归和 for 循环 在下面的程序中需要 tail 作为函数参数吗?
问题描述
考虑以下代码: 程序如何使用递归和 for 循环 在下面的程序中,tail 作为函数参数需要什么?
def permutations(head, tail=''):
if len(head) == 0:
print(tail)
else:
for i in range(len(head)):
permutations(head[0:i] + head[i+1:],tail+head[i])
permutations('abcd')
解决方案
此函数用于获取 a 字符的所有可能排列str
。
递归部分负责从 中获取字符head
并将它们放入tail
,以及何时head == ''
打印tail
.
循环的作用for
是考虑所有的可能性。实际上,它首先从 中获取第一个字符head
,然后是第二个,然后是第三个,依此类推。
通过结合这两个部分,我们得到了所有的排列。
希望这对您有所帮助。
推荐阅读
- performance - Matlab效率:小for-loop
- macos - 如何在 macOS 上调试 AttributeGraph 崩溃
- typescript - Redux Thunk,修改状态:未处理的承诺拒绝:错误:[Immer] Immer 仅支持设置数组索引和“长度”属性]
- angular - Angular - 如何过滤动态数据?
- oracle - Oracle EBS中如何远程调用服务?
- .htaccess - 如何使用 .htaccess 或任何其他方法重写 vagrant 中的 URL?
- java - swagger-codegen-maven-plugin 服务器代码生成
- mongodb - 如何从 MongoDB 中删除部分列值与给定值匹配的记录
- ios - iOS 金属 3d 纹理采样方法是三线性的吗?
- abac - 如何在 FaunaDB 谓词函数中获取记录的“Ref”?