我想生成一个文本文件,其中包含从限制字符集到bash的所有可能组合,或者可能是python
例如 我有
aAbBc01+
我希望所有组合9和10个字符长的开头
aaaaaaaaa
以
结束++++++++++
通过
+++++++++
aaaaaaaaaa
答案 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