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

如何将9个字符串随机生成唯一4元组并导出至TXT文件

生成唯一4字符串组合并导出至TXT文件

需求描述

从包含9个不同字符串的列表中,生成唯一的4字符串组合,随机化后导出到TXT文件。当前代码无法实现分组为4元组的功能,现有代码如下:

import random
a = "0xa5"
b = "0x1"
c = "0xE5924"
d = "0xE59"
e = "0xC60aE"
g = "0xd7F1DF"
h = "0xDEF1717"
i = "0xA102072A4C07F9"
j = "0x934A0E2c6C427D9F25"

my_list = [a,b,c,d,e,g,h,i,j]
random.shuffle(my_list)
myset = set(my_list)
print(myset)

期望输出示例:

["0xa5","0x1","0xE5924","0xE59"],
["0xa5","0x1","0xE5924","0xA102072A4C07F9"],

解决方案

要生成唯一的4元素组合,推荐使用itertools.combinations(生成无序不重复组合),如果需要随机化输出顺序,可再打乱组合列表。以下是完整实现代码:

import itertools
import random

# 定义所有目标字符串
str_list = [
    "0xa5",
    "0x1",
    "0xE5924",
    "0xE59",
    "0xC60aE",
    "0xd7F1DF",
    "0xDEF1717",
    "0xA102072A4C07F9",
    "0x934A0E2c6C427D9F25"
]

# 生成所有不重复的4元素组合(无序,避免重复组合)
all_unique_combinations = list(itertools.combinations(str_list, 4))

# 随机打乱组合的输出顺序(可选,不需要可删除此行)
random.shuffle(all_unique_combinations)

# 格式化为需求的字符串样式
formatted_output = []
for combo in all_unique_combinations:
    line = f'["{"","".join(combo)}"],'
    formatted_output.append(line)

# 写入TXT文件
with open("unique_4tuples.txt", "w", encoding="utf-8") as file:
    file.write("\n".join(formatted_output))

关键说明

  • itertools.combinations(str_list, 4):生成列表中所有4个元素的无序唯一组合,例如["a","b","c","d"]与["b","a","c","d"]会被视为同一组合,仅生成一次,确保唯一性。
  • 若需要有序排列(不同顺序算不同组合),将combinations替换为itertools.permutations即可,但此时生成的数量会远多于组合数(9取4的排列共3024个,组合共126个)。
  • 代码最后会将所有格式化后的组合写入unique_4tuples.txt文件,每行对应一个4元组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 17:01:08