Python输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如 输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
时间: 2024-05-04 13:15:17 浏览: 154
Python字符串、列表、元组、字典、集合的补充实例详解
可以使用递归的方法求解。每次固定一个字符,将剩余的字符进行全排列,然后将固定的字符与全排列结果进行拼接。具体实现如下:
```python
def permutation(s):
if len(s) <= 1:
return [s]
res = []
for i in range(len(s)):
# 固定一个字符
c = s[i]
# 求剩余字符的全排列
rest = s[:i] + s[i+1:]
rest_permutation = permutation(rest)
# 将固定字符与全排列结果进行拼接
for p in rest_permutation:
res.append(c + p)
return res
s = input("请输入一个字符串:")
res = permutation(s)
res.sort()
for r in res:
print(r)
```
这里需要注意的是,最终输出的结果需要按字典序排序。可以使用Python内置的`sort()`方法进行排序。
阅读全文