递归:
从字符串中挑出一个字符,再加入到其他字符的全排列中;
去掉重复只需要判断当前字符是否在之前出现过即可。
class Solution:
def permutation(self, S: str) -> List[str]:
n=len(S)
if n==0:
return [“”]
res=[]
for i in range(n):
if S[i] in S[:i]: #只需判断S[i]是否在S[:i]中出现过即可
continue
for s1 in self.permutation(S[:i]+S[i+1:]):
res.append(S[i]+s1)
return res