You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于任意长度的字母候选列表生成所有可能的组合单词

生成不定长字母候选列表的所有组合单词

实现代码

from itertools import product

def generate_words(candidate_lists):
    # * 解包输入列表,适配任意长度的子列表输入
    all_combinations = product(*candidate_lists)
    # 字母元组转为字符串单词
    return [''.join(comb) for comb in all_combinations]

测试示例

输入测试用例 test_list = [['l','b'], ['e','d'], ['s','t']]
调用代码:

result = generate_words(test_list)
print(result)

输出结果:
['les', 'let', 'lds', 'ldt', 'bes', 'bet', 'bds', 'bdt']

原有代码错误说明

  1. 第一种写法res = list(map(prod, zip(test_list)))

zip会遍历拆分外层列表的每个子列表作为单独参数,每次仅给product传入单个子列表,返回的是多个独立的product生成器对象,无法得到全量笛卡尔积。

  1. 第二种写法list(product(letter[0],letter[1],letter[2]))

手动指定索引仅支持固定3个子列表的输入场景,使用*解包输入列表可以自动将所有子列表作为参数传入product,适配任意长度的输入。

内容的提问来源于stack exchange,提问作者Ghof-90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 19:36:03