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

Python实现固定位置单词排列,用于恢复12词助记词种子

高效生成固定位置的助记词排列脚本

核心思路

  1. 拆分固定位置与可用单词:将已知的3个固定单词从候选列表中移除,得到可自由排列的单词池
  2. 精准生成目标排列:仅对剩余9个需要填充的位置,从可用单词池中选9个生成排列(而非全量15词排列)
  3. 迭代处理结果:用迭代器逐个生成排列,避免一次性加载所有结果耗尽内存

完整代码示例

from itertools import permutations

# 定义固定位置的单词(注意:Python列表是0索引,第1位对应索引0,第5位对应4,第12位对应11)
fixed_positions = {
    0: 'wild',
    4: 'script',
    11: 'hurt'
}

# 替换成你实际的15个候选单词
candidates = [
    'wild', 'script', 'hurt',
    'apple', 'banana', 'cherry',
    'date', 'elderberry', 'fig',
    'grape', 'honeydew', 'kiwi',
    'lemon', 'mango', 'nectarine'
]

# 过滤出可用于填充剩余位置的单词(移除已固定的3个)
available_words = [word for word in candidates if word not in fixed_positions.values()]

# 计算需要填充的位置(总12位减去固定的3位)
total_mnemonic_length = 12
empty_positions = [i for i in range(total_mnemonic_length) if i not in fixed_positions.keys()]

# 检查可用单词数量是否足够(需要9个,候选去掉3个后应该剩12个,满足需求)
if len(available_words) < len(empty_positions):
    raise ValueError("可用单词数量不足,无法填充剩余位置")

# 逐个生成有效排列,避免内存过载
for perm in permutations(available_words, len(empty_positions)):
    # 初始化助记词列表
    mnemonic = [None] * total_mnemonic_length
    # 填充固定位置
    for pos, word in fixed_positions.items():
        mnemonic[pos] = word
    # 填充剩余位置
    for idx, pos in enumerate(empty_positions):
        mnemonic[pos] = perm[idx]
    
    # 这里替换成你需要的操作:打印/写入文件/验证助记词
    print(' '.join(mnemonic))
    # 写入文件示例(推荐用这个,避免刷屏)
    # with open('valid_mnemonics.txt', 'a', encoding='utf-8') as f:
    #     f.write(' '.join(mnemonic) + '\n')

关键细节说明

  • 索引对应关系:必须注意Python的0索引规则,第1位助记词对应列表索引0,第5位对应索引4,最后一位(第12位)对应索引11
  • 内存优化:permutations返回的是迭代器,每次只生成一组排列,不会一次性把大量结果加载到内存
  • 排列范围控制:仅针对剩余9个位置生成排列,相比全15词排列,计算量大幅降低
  • 唯一性保障:permutations生成的是不重复元素的有序排列,符合助记词无重复单词的规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 00:30:53