首页 > 解决方案 > 程序如何使用递归和 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')

标签: python

解决方案


此函数用于获取 a 字符的所有可能排列str

递归部分负责从 中获取字符head并将它们放入tail,以及何时head == ''打印tail.

循环的作用for是考虑所有的可能性。实际上,它首先从 中获取第一个字符head,然后是第二个,然后是第三个,依此类推。

通过结合这两个部分,我们得到了所有的排列。

希望这对您有所帮助。


推荐阅读