【面试题28】字符串的全排列
2018-08-26 本文已影响0人
fighting_css
【题目】
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
输入描述:
输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。
【思路】
image.png
【代码】
class Solution:
def Permutation(self, ss):
# write code here
if ss==None:
return
if len(ss)==1:
return [ss]
res = []
for i in range(len(ss)):
for j in self.Permutation(ss[0:i]+ss[i+1:]):
res.append(ss[i]+j)
return sorted(list(set(res)))