在进行一些cryptanalysis ,遇到一种情况,我需要生成某些字符的组合。 使用许多在线组合生成器可以轻松完成此操作,除了我想固定我已经知道的某些字符的位置时,同时为其余部分生成组合。 例如,我有字符'A', 'B', 'c', 'D, 'e', 'F', and 'g'

现在,我知道'A'将排在第一位。 因此,首先修复'A' 现在,对于第二和第三点,我知道它可能是'B''c' 因此,将'B''c'置换为第二和第三位。 对于第四点,我有一个固定的'D' 第五,固定的'e' 第六,是'F''f' 对于第七,是'g''3' 等等..

我的问题是如何在固定其余字符的同时按我想要的方式排列其余字符? 我可以使用任何工具还是需要编写自己的工具? 有人可以指出一个简单的方法吗?

#1楼 票数:1 已采纳

这可以通过Python的itertools.product()函数解决:

#!/usr/bin/env python
from __future__ import absolute_import, division, print_function
from itertools import product


def main():
    for characters in product(*['A', 'Bc', 'Bc', 'D', 'e', 'Ff', 'g3']):
        print(''.join(characters))


if __name__ == '__main__':
    main()

该输出:

ABBDeFg
ABBDeF3
ABBDefg
ABBDef3
ABcDeFg
ABcDeF3
ABcDefg
ABcDef3
AcBDeFg
AcBDeF3
AcBDefg
AcBDef3
AccDeFg
AccDeF3
AccDefg
AccDef3

  ask by learnerX translate from so

未解决问题?本站智能推荐:

4回复

Python:使用一系列字符查找所有可能的单词组合(分词)

我正在做一些像下面这样的分词实验。 lst是一系列字符, output是所有可能的单词。 我已经检查了itertools库中的combinations和permutations , 并尝试过组合学 。 然而,似乎我在看错了,因为这不是纯粹的排列和组合...... 似乎
3回复

“展开”一个字符串

我有一组字符串,每个字符串都有一个由管道( | )分隔的可变数量的段,例如: 具有多个char的每个段应该扩展为所有可能的一个char组合,对于3个段,以下“算法”非常有效: 输出: 显然,对于3个以上的段,代码开始变得非常混乱,因为我需要添加(并检查)越来越多的内部循环
1回复

如何找到满足以下条件的字符串置换方式?

我得到一个字符串,请说- “ abcd” 。 现在,我必须找到所有可以通过排列其字符而生成的字符串,以使- 生成的字符串中恰好有四个不匹配项,并且 错配成对存在,例如- 字符串- “ abcd”具有三个这样的排列- “ badc” , “ cdab” ,
1回复

R中的排列和组合

我有N=4的元素和q=3 symboled作为元素1 , 2 , 3 。 我创建矩阵M ,其中包含的所有矢量N=4的元素与2元素等于1 , 1元件等于2和1元件等于3在所有可能的位置,使用interpc如下: 我想以不创建的行的方式2 , 5 , 6 , 10 , 11和12 。
1回复

使用包含M个字符的字母计算长度为N的密码

假设我们的字母中有M个字符。 我们要形成长度为N的密码(或字符串)。 约束是所有密码必须至少包含一次输入字母中的每个字符。 那么,可以使用多少个这样的密码? 而且,M <= N 示例1: M = 4 ,N = 4 ,答案= 24 示例2: M = 2 ,N = 3
1回复

具有 C 对 N 元素的组合数

我有N个桶。 每个桶可以包含 0 或 1。C 是表示连续显示多少个数字1数字(例如,如果 C=3 我将有111 )。 例如,对于 N=5 和 C=2,所有组合的总数为 19(这里 C=2,所以我必须至少有两个 - 11排): 这是前 20 个 N 和 C 数字的计算(我在上面标记了黄色案例)
3回复

对于数字列表,找到累积总和保持在界限内的所有组合

假设我有以下列表: [A, A, A, A, A, B, B, B]其中A=1, B=-1 查找此列表的所有组合通常很容易 (8nCr3),但我想在累积总和达到某些边界值(例如 0 和 4)时忽略排列。 因此上面的例子是不正确的,因为累积和是 [1, 2, 3, 4 , 5 , 4 , 3, 2
2回复

计算有序和无序排列-C

尝试计算C中的数字和选择的有序排列和无序排列。递归阶乘函数有效,排列结果提供随机存储位置 。/排列 输入项目数:5 输入编号以选择:2 有1.#INF00个有序排列 有1.#INF00个无序排列