为什么我的itertools计算缺少值?

时间:2019-01-04 07:03:27

标签: python itertools

我已经完成了一段代码,该代码生成给定字符集的所有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,我真的不知道是否有解决方案。

0 个答案:

没有答案