第三十七题 c++的string、char不想折腾了 用python写了。利用递归的算法

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#

# @param str string字符串 
# @return string字符串一维数组
#

# c++ 字符串 string char太复杂了 用python写更简单
# 思路:每次提取出一个字符,剩下的字符再扔到函数中去排序,最后所有排序的内容前面添加提取的字符,并判断是否重复
# abcdefg,我先把a拿出来,在将bcdefg传入参数,这样最后返回的是bcdefg所有的结果 再将a加上去就对了
# a处理完后 处理b,将acdefg传入参数继续往下调用就好
class Solution:
    def Permutation(self , str: str) -> List[str]:
        ans=[]
        n=len(str)
        if(n<=1):
            return str
        for i in range(len(str)):
            s1=str[i];
            for s2 in self.Permutation(str[:i] + str[i+1:]):
                insert_ans=s1+s2
                # 也可以直接append 最后再利用set 去重
                if insert_ans not in ans:
                    ans.append(insert_ans)
        return ans
    
    #