【问题标题】:How do i find/write a String/code generator with prefix char and order (preferably in Python or Java)我如何查找/编写带有前缀字符和顺序的字符串/代码生成器(最好在 Python 或 Java 中)
【发布时间】:2025-12-22 17:25:07
【问题描述】:

我试图弄清楚如何获得 8 个字符长的代码/字符串的所有可能组合。但是这个代码/字符串必须满足以下两个要求:

  1. 第一个字符始终相同。
  2. 而且字符的顺序也始终相同。

为了说明清楚,我举个例子。

(A)XX-000-XX

所以(A)是静态的,两个连续的大写字母是可变的。三个数字也是可变的,最后两个大写字母也是可变的。

我已经找到了可以修复 (A) 的生成器。但是我还没有找到前缀顺序的其他要求。

所以我想也许我应该自己写。有人可以指出我正确的方向吗?非常感谢!

亲切的问候, 马诺洛

【问题讨论】:

  • 您能与我们分享您找到的生成器吗?

标签: python java string generator


【解决方案1】:

这个呢?您可以调整 random.randiant 的输入来限制您的字符池。

`strings = ["","",""]

#generate 3 random characters
for str in strings:
    random_integer = random.randint(0, MAX_LIMIT)
    # append random character to string
    str += (chr(random_integer))

#Write string with .format
print("({m[0]}){m[1]}{m[1]}-{m[2]}{m[2]}-{m[1]}{m[1]}".format(m=strings)`

【讨论】:

  • 但这会创建随机组合,问题是创建所有组合
【解决方案2】:

这会创建所有组合。 这个想法是为 XX 创建所有大写字母组合 并为 000 部分使用数字

from string import ascii_uppercase, digits 
from itertools import product

for a,b,c in product(product(ascii_uppercase,repeat=2), product(digits ,repeat=3), product(ascii_uppercase,repeat=2)):
   print(f"(A){''.join(a)}-{''.join(b)}-{''.join(c)}")

# sample: (A)AA-282-KV

提示

所有组合为:26^4*10^3 = 456976000

【讨论】: