首页 文章资讯内容详情

获取字符串大小 r 的所有排列的 Python 程序

2026-06-03 2 花语

假设我们有一个字符串s和一个数字r。我们必须显示s中r个字符的所有排列。我们有permutations()获取所有排列的功能。这个函数存在于itertools库中。

因此,如果输入类似于s="HELLO"r=3,那么输出将是

>[HEL, HEL, HEO, HLE, HLL, HLO, HLE, HLL, HLO, HOE, HOL, HOL, EHL, EHL, EHO, ELH, ELL, ELO, ELH, ELL,ELO, EOH, EOL, EOL, LHE, LHL, LHO, LEH, LEL, LEO, LLH, LLE, LLO, LOH, LOE, LOL, LHE, LHL, LHO, LEH, LEL, LEO, LLH, LLE, LLO, LOH, LOE, LOL, OHE, OHL, OHL, OEH, OEL, OEL, OLH, OLE, OLL, OLH, OLE, OLL]

示例

让我们看下面的实现来更好地理解

from itertools import permutations def solve(s, r): vals=list(permutations(s,r)) res=[] for x in vals: res.append(.join(x)) return res s = "HELLO" r = 3 print(solve(s, r))

输入

"HELLO", 2输出结果[HEL, HEL, HEO, HLE, HLL, HLO, HLE, HLL, HLO, HOE, HOL, HOL, EHL, EHL, EHO, ELH, ELL, ELO, ELH, ELL, ELO, EOH, EOL, EOL, LHE, LHL, LHO, LEH, LEL, LEO, LLH, LLE, LLO, LOH, LOE, LOL, LHE, LHL, LHO, LEH, LEL, LEO, LLH, LLE, LLO, LOH, LOE, LOL, OHE, OHL, OHL, OEH, OEL, OEL, OLH, OLE, OLL, OLH, OLE, OLL]