给定一个字符串,找出它的所有排列,注意同一个字符串只能出现一次
参考代码:
class Solution: def stringPermutation(self, str): result = [] if str == '': return [''] s = list(str) s.sort() while True: result.append(''.join(s)) s = self.nextPer(s) if s is None: break return result def nextPer(self, num): n = len(num) i = n - 1 while i >= 1 and num[i - 1] >= num[i]: i -= 1 if i == 0: return None j = n - 1 while j >= 0 and num[j] <= num[i - 1]: j -= 1 num[i - 1], num[j] = num[j], num[i - 1] num[i:1] = num[i:][::-1] return num