用于从单个集合生成特定大小的所有组合的算法

时间:2015-08-15 17:31:23

标签: c# algorithm statistics combinations dictionary-attack

我正在寻找c#中的解决方案,在给定的字符或单词列表上生成组合,以对zip文件执行字典攻击。因为我们丢失了那些zip的密码文件。优点是我们知道可能的话。字典应包含我选择的所有单词组合。并且所有字符/单词都只是小例子。

示例:假设我们有一组字符:

Set A = {A,B,C}

A,B,C   =3

AA,AB,AC

BA,BB,BC

CA,CB,CC    =9


AAA,AAB,AAC,ABA,ABB,ABC,ACA,ACB,ACC

BAA,BAB,BAC,BBA,BBB,BBC,BCA,BCB,BCC

CAA,CAB,CAC,CBA,CBB,CBC,CCA,CCB,CCA    = 27


TOTAL POSIBLE COMBINATION 39

从单词列表中单个单词/字符最多可重复4次。如果有任何这样的算法/逻辑,请建议。

1 个答案:

答案 0 :(得分:1)

这是一个使用递归的C#实现:

foo: {expr; break foo;}

Demo

如果要稍后检索值,请在从函数do..while返回之前将字符串存储在全局数组中。