我已经完成了一段代码,该代码生成给定字符集的所有n个字符组合(在这种情况下,所有大写/小写字母/数字),将其设置为2个字符组合时,它会生成3844个组合,正如它应该。例如。生成后,.txt文件将输出如下组合:
mH
JV
Lc
IK
Vo
7o
vJ
UE
h0
Jr
nE
67
BT
但是,当您输入3个字符时,它应该生成大约238k的组合,但不足约7564个组合。 4个字符的组合也是如此,总差额约为120万。
我研究了3ch和4ch组合计算的损失量,它们具有相同的因子,并且3ch组合似乎每个字符损失约122个组合(62 * 122)。不知道这是否相关,但我认为可能会有些数学为何会跳过一定数量。
from itertools import permutations, combinations_with_replacement
import string
alphabet = string.ascii_letters + string.digits
output = [''.join(i) for i in
list(set(combinations_with_replacement(alphabet, 2)) |
set(permutations(alphabet, 2)))]
text_file = open("output.txt", "w")
text_file.write('\n'.join(output))
text_file.close()
有人知道这是为什么吗?我需要为3个字符集生成所有可能组合的函数,因此它会生成所有238k。我环顾四周,但我能找到的最接近的是this,我真的不知道是否有解决方案。