我想生成一个文本文件,其中包含从受限字符集到 bash 的所有可能组合,或者可能是 python
例如我有
aAbBc01+
我想让所有 9 和 10 个字符的组合都以
aaaaaaaaa
完成
++++++++++
路过
+++++++++
aaaaaaaaaa
我想生成一个文本文件,其中包含从受限字符集到 bash 的所有可能组合,或者可能是 python
例如我有
aAbBc01+
我想让所有 9 和 10 个字符的组合都以
aaaaaaaaa
完成
++++++++++
路过
+++++++++
aaaaaaaaaa
这是一个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)
并将输出重定向到文本文件
已经在论坛讨论过了
对于蟒蛇:
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