很抱歉用我的愚蠢来打扰你......我找不到itertools.permutations是如何工作的,输出的结果很奇怪!它应该返回所有可能的组合,就像一个定义了输出长度的蛮力(a,b,c,......,aa,ab,ac......,aaa,aab,aac......是一个蛮力,而长度为3的排列组合:aaa,aab,aac......是一个蛮力。 ..., aa, ab, ac..., aaa, aab, aac...是一个蛮力,而长度为3的permutations:aaa, aab, aac...dee, def, deg, ...zaa, zab, zac...),不是吗?
但如果我使用 "0123456789",有时会丢失一些值,比如040613,即使在全局范围内有很多值,也会丢失很多。那么它是如何工作的呢?
如果你想知道具体的日期,我试图得到所有可能的日期,例如格式为050520(May the second, 2020)。但是如果缺少了日期...
我的代码:
from itertools import permutations #or combinations
def dates(charset, maxlength):
return (''.join(candidate) for candidate in permutations(charset, maxlength))
print(list(dates("0123456789", 6)))
感谢所有试图帮助我的人,祝你有愉快的一天 !
0123456789 "的排列组合不包括 "040613",因为这个数字需要2个零标记。
例如:"0123456789 "不包含 "03613",因为这个数字需要2个零符。
>>> list(permutations("123", 3))
[('1', '2', '3'), ('1', '3', '2'), ('2', '1', '3'), ('2', '3', '1'), ('3', '1', '2'), ('3', '2', '1')]
不包含 "333 "或 "313"