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

如何使用Python生成全部6位数字编码(暴力破解场景)

正确生成所有6位数字编码的Python实现

原代码的问题

  • 原函数用random.choice()是随机生成单个6位数字串,无法遍历所有可能的组合
  • 最后print(brute_force)打印的是函数对象而非调用结果,就算改成print(brute_force())也只能生成随机单个编码,不符合暴力枚举所有组合的需求

正确实现方法

要生成所有0-9组成的6位数字编码(包含前导零,比如000000这类),最简洁高效的方式是用itertools.product生成笛卡尔积,它能覆盖所有可能的组合:

import itertools

def generate_all_6digit_codes():
    digits = '0123456789'
    # 生成所有6位数字的笛卡尔积组合
    for combo in itertools.product(digits, repeat=6):
        yield ''.join(combo)

# 遍历输出所有编码(注意:总共有10^6=100万条数据,直接打印会耗时,建议按需处理)
for code in generate_all_6digit_codes():
    print(code)

说明

  • itertools.product(digits, repeat=6)会生成所有长度为6的数字组合,每个位置都取0-9中的数字
  • 用生成器yield可以避免一次性把100万条数据加载到内存,内存占用更低
  • 如果需要把所有编码存入列表,直接转换即可:all_codes = list(generate_all_6digit_codes())

无依赖替代写法

如果不想使用itertools模块,也可以用嵌套循环实现,只是代码会更繁琐:

def generate_all_6digit_codes():
    for d1 in range(10):
        for d2 in range(10):
            for d3 in range(10):
                for d4 in range(10):
                    for d5 in range(10):
                        for d6 in range(10):
                            yield f"{d1}{d2}{d3}{d4}{d5}{d6}"

# 使用方式同上
for code in generate_all_6digit_codes():
    print(code)

这种写法逻辑和itertools实现一致,但嵌套层数多,可读性和简洁性不如前者。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 23:35:21