亮亮深吸一口气,小心地将盒子打开,里面是一张地图,地图上除了一些奇怪的字母以外没有任何路线信息,这可让亮亮犯了愁,这些字母代表了什么意思呢? 亮亮绞尽脑汁也想不出什么思路,突然,亮亮眼前一亮,“我可以把这些字母所有的排列方式全部写出来,一定可以找到答案!” 于是,亮亮兴奋的开始寻找字母里的秘密。
每组数据输入只有一行,是一个由不同的大写字母组成的字符串,已知字符串的长度在1到9之间,我们假设对于大写字母有'A' < 'B' < ... < 'Y' < 'Z'。
输出这个字符串的所有排列方式,每行一个排列,要求字母序比较小的排列在前面。
WHL
HLW<br/> HWL<br/> LHW<br/> LWH<br/> WHL<br/> WLH<br/>
class MainActivity: def main(self): # Read the data s = input() # Calculate results = self.__traverse(s) results.sort() for result in results: print(result) def __traverse(self, s): if len(s) == 1: return [s] results = set() for ptr, char in enumerate(s): tmpResults = self.__traverse(s[:ptr] + s[ptr + 1:]) for result in tmpResults: results.add(char + result) return list(results) if __name__ == '__main__': M = MainActivity() M.main()