python全排列代码,求解释

发布网友 发布时间:2022-04-22 16:56

我来回答

1个回答

热心网友 时间:2023-07-22 04:46

def p(s,res=[]):
    #将字符c插入到数列ar中,会有多少种排列
    def h(c,ar):
        return [ar[:i]+[c]+ar[i:] for i in range(len(ar)+1)]
    #已有结果arr的基础上,如果增加c字符,arr会变成多少种排列
    def g(c,arr,res=[]):
        if arr==res==[]:
            return [[c]]
        elif arr==[]:
            return res
        else:
            return g(c,arr[1:],res+h(c,arr[0]))
    #主体递归
    if s=='':
        return res
    else:
        return p(s[1:],g(s[0],res))

if __name__=='__main__':
    s='ABCDE'
    for x in p(s):
        print(''.join(x))

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com