剑指 Offer 38. 字符串的排列
class Solution(object):
def permutation(self, s):
"""
:type s: str
:rtype: List[str]
"""
if s=='':
return []
arr=list(s)
res=set() #存结果
def dfs(x):#x为当前遍历的在数组中的位置
if x==len(s)-1:
res.add(''.join(arr))
return
dfs(x+1)
for i in range(x+1,len(s)):
if arr[i]!=arr[x]:
arr[i],arr[x]=arr[x],arr[i]
dfs(x+1)
arr[i],arr[x]=arr[x],arr[i]
dfs(0)
return list(res)