Você poderia fazer:
$ printf '%s ' {a..z}; echo
a b c d e f g h i j k l m n o p q r s t u v w x y z
$ printf '%s%s ' {a..z}{,}; echo
aa bb cc dd ee ff gg hh ... ss tt uu vv ww xx yy zz
$ printf '%s%s%s ' {a..z}{,,}
aaa bbb ccc ddd eee ... ttt uuu vvv www xxx yyy zzz
Explicado: Uma expansão de chave criará um argumento para cada valor delimitado pela vírgula (e a cadeia principal):
$ echo A{d,u,j}
Ad Au Aj
Mas, se o valor estiver vazio, ele apenas repetirá a string principal:
$ echo A{,,}
A A A
Se a cadeia principal for uma expansão de contraventamento, todas as strings serão repetidas:
$ echo {one,two}{,,}
one one one two two two
Em seguida, o printf (e o eco à direita) são usados para formatar a saída:
$ printf '%s%s%s ' {one,two}{,,}; echo
oneoneone twotwotwo
Com valores de uma letra:
$ printf '%s%s%s ' {a..d}{,,}; echo
aaa bbb ccc ddd