题目:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba
思路:这是一个全排列问题
采用递归的思想,固定第一个字符,后面的字符也按照递归求解
class Solution:
def Permutation(self, ss):
if ss == []:
return
if len(ss)==1:
return list(ss)
sslist = list(ss)
sslist.sort()
pstr = []
for i in range(len(sslist)):
if i>0 and sslist[i]==sslist[i-1]:
continue
tmp = self.Permutation(''.join(sslist[:i])+''.join(sslist[i+1:]))
for j in tmp:
pstr.append(sslist[i]+j)
return pstr
a = Solution()
print(a.Permutation('aabc'))