class Solution:
def Permutation(self , str1: str):
s = list(str1)
output = []
n = len(s)
def func(first):
if first == n:
output.append(''.join(s))
return
used = set()
for i in range(first, n):
if s[i] in used: # 压入集合的应该是s[i],而不是i
continue
used.add(s[i])
s[first], s[i] = s[i], s[first]
func(first + 1)
s[first], s[i] = s[i], s[first]
func(0)
return output

京公网安备 11010502036488号