Em bash
, você pode tentar:
printf "%s\n" {{a..z},{A..Z},{0..9}}{{a..z},{A..Z},{0..9}}{{a..z},{A..Z},{0..9}}{{a..z},{A..Z},{0..9}}{{a..z},{A..Z},{0..9}}
mas isso levaria uma eternidade e gastaria toda a sua memória. O melhor seria usar outra ferramenta como perl
:
perl -le '@c = ("A".."Z","a".."z",0..9);
for $a (@c){for $b(@c){for $c(@c){for $d(@c){for $e(@c){
print "$a$b$c$d$e"}}}}}'
Cuidado com 6 x 62 5 bytes, portanto, 5.496.796.992.
Você pode fazer o mesmo loop bash
, mas, bash
sendo o shell mais lento do oeste, isso levará horas:
export LC_ALL=C # seems to improve performance by about 10%
shopt -s xpg_echo # 2% gain (against my expectations)
set {a..z} {A..Z} {0..9}
for a do for b do for c do for d do for e do
echo "$a$b$c$d$e"
done; done; done; done; done
(no meu sistema, isso gera 700 kiB / s em oposição a 20MiB / s com o perl
equivalente).