从一组字符生成文本文件

时间:2013-10-07 10:07:53

标签: bash

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

例如 我有

aAbBc01+

我希望所有组合9和10个字符长的开头

aaaaaaaaa

结束
++++++++++

通过

+++++++++
aaaaaaaaaa

2 个答案:

答案 0 :(得分: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)

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

答案 1 :(得分:0)

已在forum

中讨论过

对于python:

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