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

如何用Python获取子字符串列表的所有排列组合?

解决方案:生成子字符串列表的所有拼接排列组合

核心思路

要实现需求,我们需要生成输入列表中所有非空子集的有序排列拼接结果——也就是从1个元素到全部元素的所有排列,再将每个排列里的子字符串依次拼接。借助itertools.permutations可以高效生成不同长度的排列,避免嵌套循环的冗余写法。

代码实现

import itertools

def generate_all_combinations(str_list):
    result = []
    # 遍历所有可能的子集长度:从1到列表总长度
    for subset_length in range(1, len(str_list) + 1):
        # 生成当前长度的所有有序排列
        for perm in itertools.permutations(str_list, subset_length):
            # 拼接排列中的子字符串并加入结果列表
            result.append(''.join(perm))
    return result

# 示例调用
input_example = ['ab', 'CD', '12']
print(generate_all_combinations(input_example))

输出结果示例

运行代码后会得到包含所有预期结果的列表:

['ab', 'CD', '12', 'abCD', 'ab12', 'CDab', 'CD12', '12ab', '12CD', 'abCD12', 'ab12CD', 'CDab12', 'CD12ab', '12abCD', '12CDab']

关键细节说明

  • itertools.permutations(str_list, subset_length):自动生成列表中取subset_length个元素的所有有序排列,天然覆盖不同元素数量的拼接场景。
  • ''.join(perm):将排列中的子字符串直接拼接为完整字符串,简洁高效。
  • 循环从1开始遍历长度,确保不会生成空子集对应的无效结果。

内容的提问来源于stack exchange,提问作者Arount

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 17:09:52