Python 检查所有可能性需要多长时间?

Python 检查所有可能性需要多长时间?,python,Python,我想制作一个python程序来运行python中的字符串: a = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' 为该字符串找到所有可能的16个字符组合是否需要太长时间 有没有一种python明智的方法可以做到这一点?您可以尝试使用itertools中的组合 例如: >>> import itertools >>> [x for x in itertools.combinations("ABC", 2)] [('A', 'B

我想制作一个python程序来运行python中的字符串:

a = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
为该字符串找到所有可能的16个字符组合是否需要太长时间


有没有一种python明智的方法可以做到这一点?

您可以尝试使用
itertools
中的
组合

例如:

>>> import itertools
>>> [x  for x in itertools.combinations("ABC", 2)]
[('A', 'B'), ('A', 'C'), ('B', 'C')]

36^16=7958661109946400884391936可能的组合。即使每秒迭代10^12次,也需要250000多年的时间。你的实际问题是什么?你想用这些组合做什么?@ThiefMaster,no:C(36,16)=36!/(16!*20!)=7307872110。@larsmans:对我来说,他好像在试图用暴力强迫什么。所以重复是最有可能被允许的。@l4mpi这是一个项目,我的最后一个问题结束了,这是我的第一篇帖子,我不确定如何发布。但是你可以在那里看到细节:OP想要的是组合,而不是排列。@Jonatan谢谢你的帮助!,我在想很多方法,但这正是我想要的。检查时有没有办法打印出来?因为如果我运行'itertools.combinatios'(abcdefghijklmnopqrstuvxyz012456789',16);在我的生命周期中,我不会看到任何东西,除了它会检查所有可能的组合吗?@Jose_Sunstrider,组合函数是一个生成器,所以你应该能够选择你想要的任意多个组合(例如使用for循环)。我用列表理解的方式写出来的,会把它们都挑出来。@Jonatan正是我想要的。谢谢