题目描述
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
输入描述:
输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。
思路
取出第i个数,全排列其他非i位置的数拼在后面。
def helper(s):
if len(s) == 1:
return s[0]
res = []
for i in range(len(s)):
l = helper(s[:i] + s[i+1:])
for j in l:
res.append(s[i] + j)
return res
def Permutation(ss):
# write code here
if not ss: return []
words = list(ss)
return list(sorted(set(helper(words))))
print(Permutation('aa'))