python全排列

原理如图:

可以抽象为一颗树

 

 

代码:

def fun(string,f='',num=0,li=[]):
    if len(string)==1:
        li.append(f+string)
    else:
        for i in range(len(string)):
            h= f+string[i]
            w=string[0:i]+string[i+1:len(string)]
            fun(w,f=h,num=num+1,li=li)
    return li
print(fun("123"))
>>>:
['123', '132', '213', '231', '312', '321']

 

posted @ 2020-09-19 18:21  sunny开始学坏  阅读(165)  评论(0编辑  收藏  举报