当我运行此代码时,我没有得到3个字符的所有可能组合:
def comb(iterable, r):
pool = tuple(iterable)
n = len(pool)
for indices in permutations(range(n), r):
if sorted(indices) == list(indices):
yield tuple(pool[i] for i in indices)
def start():
for x in comb("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12234567890!@#$%^&*?,()-=+[]/;",3):
print x
相反,它跳过了一些。当我重复字符3次时,我得到了所需的所有组合,但又得到了多次。这花费了三倍的时间,这不是我想要的。我将要计算数百万种组合,因此我需要知道一种替代重复字符的方法。
您正在寻找itertools.product(characters, repeat = 3)
。
参见itertools.product
文档。
>>> ' '.join(''.join(x) for x in itertools.product('abcd', repeat = 2))
aa ab ac ad ba bb bc bd ca cb cc cd da db dc dd
我更改了数据库中的一些表,所以我想生成记录、键、类等。但是每次我这样做时,它总是跳过jooq代码生成。 [INFO]--jooq-codegen-maven:3.11.10:generate(默认cli)@http网关--[INFO]跳过jooq代码生成 为了运行Jooq代码生成,我应该执行哪个mvn cmd?现在我使用: 谢谢
根上没有任何内容,只有settings.gradle和build.gradle,相关性最小。 有许多模块/子项目,其中一个名为xyzintegrationtest(xyz是假示例名) integrationtest模块xyzintegrationtest具有src/main、src/test和src/integrationtest src/main和src/test为空。src/intgerati
问题内容: 我正在阅读《有效的Java》一书,并创建了一些笔记供以后参考,我遇到了Builder Pattern。 我很清楚它是什么以及应该如何使用它。在此过程中,我创建了构建器模式的两个示例变体。 在列出差异和每个优势时,我需要帮助吗?好吧,我当然注意到,通过允许更灵活地使用它,公开了更少的方法,限制更少,通用性更强。 请指出我错过的其他事情? 例子1 例子2 问题答案: 以上都不是。 第一个不
问题内容: 我有一套文件,例如 如标题中所述:是否可以使用Nest过滤包含给定标签的所有文档? 例如,上面的记录将匹配[‘c’,’d’] 还是应该手动构建多个“ OR”? 问题答案: 编辑:下面的位集可能是有趣的读物,但答案本身有点过时。 其中一些功能在2.x中有所变化。Slawek还在另一个答案中指出,在这种情况下,查询是使搜索干燥的一种简便方法。最后重构为当前最佳实践。—nz 您可能需要带有子
给定两个数组,其中数组1包含变量,数组2包含变量的值,我希望得到这两个数组的所有可能组合,例如: 数组可以容纳尽可能多的变量,也可以容纳。 所需输出: 我尝试了一种递归方法: 我希望能够将每一行正确的内容保存为中的一个元素,但首先我想知道如何正确打印每一行。 编辑:第二个数组不是常量,它在每个变量之间不同: 显然,这在递归中行不通,因为我需要将每个数组与变量数组一起发送,我通过创建一个对象来实现这
我在gradle项目中添加了一个任务: 现在,任务总是在任务之前运行。这很好,因为构建任务包含许多步骤。现在我想显式禁用其中一个包含的任务。