提交 2796c97e 编写于 作者: M Mars Liu

字符串全排列

上级 54e8de14
# 全排列
定义:
* 排列 (P(n, m)))(英语:Permutation)是将相异物件或符号根据确定的顺序重排。每个顺序都称作一个排列
* P(n, n) 称为全排列
问题:假设有一个短字符串,没有重复字符,并且都是英文字母。我们现在要写一个程序,生成其字符的全排列。
## 输入描述
输入一个字符串
## 输出描述
输出所有排列,每行一个
## 输入样例
abc
## 输出样例
abc
acb
bac
bca
cab
cba
## 提示
def permutation(data):
if len(data) < 2:
yield data
return
if len(data) == 2:
yield data
yield data[1]+data[0]
return
for i in range(len(data)):
element = data[i]
sub = data[:i] + data[i+1:]
for token in permutation(sub):
yield element + token
if __name__ == "__main__":
word = input("input:")
for line in permutation(word):
print(line)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册