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

多变量取同一值向量的矩阵快速生成方法(替代6层for循环)

替代6层循环生成6位1-4全组合的高效方法

针对生成6个变量(每个变量取1-4)的全组合字符串需求,以下两种方法比手动写6层循环更简洁高效:

方法一:利用笛卡尔积工具(Python)

Python标准库的itertools.product可以直接生成多集合的笛卡尔积,底层是优化过的实现,比手动循环更高效,代码也更易读:

import itertools

# 生成所有6元组的组合,每个元素取值1-4
combos = itertools.product([1,2,3,4], repeat=6)
# 将每个元组转为连续字符串
result = [''.join(map(str, combo)) for combo in combos]

# 输出前5个验证
for s in result[:5]:
    print(s)

输出结果:

111111
111112
111113
111114
111121

方法二:进制转换法(通用思路)

把组合问题转化为4进制数的遍历:遍历0到4^6-1(共4096个数),将每个数转为6位4进制数,再把每一位数字加1(把0-3映射为1-4),最后拼接成字符串。这种方法不依赖任何库,逻辑通用:

total = 4 ** 6
result = []
for num in range(total):
    digits = []
    n = num
    # 从低位到高位提取4进制数字
    for _ in range(6):
        n, rem = divmod(n, 4)
        digits.append(str(rem + 1))
    # 反转得到正确的高位到低位顺序
    result.append(''.join(reversed(digits)))

# 验证输出
for s in result[:5]:
    print(s)

两种方法对比

  • 笛卡尔积法:代码最简洁,可读性强,适合Python环境,利用标准库的优化实现,性能最优。
  • 进制转换法:无依赖,逻辑清晰,可轻松移植到其他编程语言,适合需要手动控制生成流程的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 02:57:33