Uma solução ligeiramente melhor:
echo {h,H}{a,A}{r,R}{l,L}{e,E}{y,Y}
Para escalabilidade total:
echo harley \
| perl -nle 'print "echo ",
join "",map { "{" . lc . "," .uc ."}" } split //' \
| xargs -I {} bash -c "{}"
Se você precisa ter uma palavra por linha, escolha
for w in {h,H}{a,A}{r,R}{l,L}{e,E}{y,Y};do echo $w;done
obrigado a comentário de mattdm
A versão escalável correspondente seria:
echo harley \
| perl -nle 'print join "",map { "{" . lc . "," .uc ."}" } split //' \
| xargs -I {} bash -c 'for w in {};do echo $w;done'
Por diversão, tente substituir "harley" por "supercalifragilisticexpialidocious" Já faz 5 minutos e meu computador ainda está trabalhando duro este e provavelmente nunca terminará:)