首页 > 解决方案 > 一种获取多个字符串的所有组合的方法(Python)

问题描述

说我输入:

["abc", "def"]

它会给我:

["ad","ae","af","bd","be","bf","cd","ce","cf"]

我使用的代码:

combs = [""]
conv = {"2":"abc","3":"def","4":"ghi","5":"jkl","6":"mno","7":"qprs","8":"tuv","9":"vxyz"}
for digit in "23":
    for comb in combs:
        for loop in range(len(conv.get(digit))):
            combs.append(digit)

但是这段代码创建了一个无限循环

标签: pythonlist

解决方案


import itertools
a = ["abc", "def", "hk"]
b = ["".join(s) for s in itertools.product(*a)]
print(b)

输出:['adh', 'adk', 'aeh', 'aek', 'afh', 'afk', 'bdh', 'bdk', 'beh', 'bek', 'bfh', 'bfk', 'cdh', 'cdk', 'ceh', 'cek', 'cfh', 'cfk']


推荐阅读