0

我想生成一个文本文件,其中包含从受限字符集到 bash 的所有可能组合,或者可能是 python

例如我有

aAbBc01+

我想让所有 9 和 10 个字符的组合都以

aaaaaaaaa

完成

++++++++++

路过

+++++++++
aaaaaaaaaa
4

2 回答 2

0

这是一个python解决方案:

def combinations(chars,length,result="",place=0):
    if place>=length:
        print result;
        return
    for i in range(length):
        combinations(chars,length,result+chars[i],place+1)

此函数获取结果的字符串和所需长度,并从中打印具有指定长度的所有字符组合。

如果您想要长度为 9 或 10 的组合,只需调用

combinations("aAbBc01+",9)
combinations("aAbBc01+",10)

并将输出重定向到文本文件

于 2013-10-07T10:44:57.843 回答
0

已经在论坛讨论过了

对于蟒蛇:

python -c "from itertools import permutations as p ; print('\n'.join([''.join(item) for line in open('File') for item in p(line[:-1])]))"

其中 File 包含您的输入字符串

对于 bash - 慢得多

perm() {
  items="$1"
  out="$2"
  [[ "$items" == "" ]] && echo "$out" && return
  for (( i=0; i<${#items}; i++ )) ; do
    ( perm "${items:0:i}${items:i+1}" "$out${items:i:1}" )
    done
  }
while read line ; do perm $line ; done < File
于 2013-10-07T10:47:29.220 回答