First of all, you could simplify your 2 printfs + 1 echo to a single printf I think:
for i in {0..25}; do
printf '%b%b\n' \\$( printf '%03o' $((i+65)) ) \\$( printf '%03o' $((-~i%26+65)) )
done
If you want to keep everything in the shell, you could use the trick described here Writing a character N times using the printf command, i.e.
for i in {0..25}; do
printf "$(printf '%b%b' \\$( printf '%03o' $((i+65)) ) \\$( printf '%03o' $((-~i%26+65)) ))%.0s" {1..13}
printf \\n
done
or, more transparently
for i in {0..25}; do
printf -v xy '%b%b' \\$( printf '%03o' $((i+65)) ) \\$( printf '%03o' $((-~i%26+65)) )
printf "${xy}%.0s" {1..13}
printf \\n
done
If you're not set on using pure shell, then a couple of other techniques to reduplicate each letter pair that come to mind are
using perl's multiplication operator
. . . | perl -lne 'print $_ x 13'
using a sed loop
. . . | sed -E ':a; /.{26}/! s/../&&/; ta'
In fact, you could do the letter pairing in sed as well
$ printf \%b {A..Z} A \\n |
sed -E '/^Z/! s/(.)(.)/&\n\2/; P;D; b' | sed -E ':a; /.{26,}/! s/../&&/; ta'
ABABABABABABABABABABABABAB
BCBCBCBCBCBCBCBCBCBCBCBCBC
CDCDCDCDCDCDCDCDCDCDCDCDCD
DEDEDEDEDEDEDEDEDEDEDEDEDE
EFEFEFEFEFEFEFEFEFEFEFEFEF
FGFGFGFGFGFGFGFGFGFGFGFGFG
GHGHGHGHGHGHGHGHGHGHGHGHGH
HIHIHIHIHIHIHIHIHIHIHIHIHI
IJIJIJIJIJIJIJIJIJIJIJIJIJ
JKJKJKJKJKJKJKJKJKJKJKJKJK
KLKLKLKLKLKLKLKLKLKLKLKLKL
LMLMLMLMLMLMLMLMLMLMLMLMLM
MNMNMNMNMNMNMNMNMNMNMNMNMN
NONONONONONONONONONONONONO
OPOPOPOPOPOPOPOPOPOPOPOPOP
PQPQPQPQPQPQPQPQPQPQPQPQPQ
QRQRQRQRQRQRQRQRQRQRQRQRQR
RSRSRSRSRSRSRSRSRSRSRSRSRS
STSTSTSTSTSTSTSTSTSTSTSTST
TUTUTUTUTUTUTUTUTUTUTUTUTU
UVUVUVUVUVUVUVUVUVUVUVUVUV
VWVWVWVWVWVWVWVWVWVWVWVWVW
WXWXWXWXWXWXWXWXWXWXWXWXWX
XYXYXYXYXYXYXYXYXYXYXYXYXY
YZYZYZYZYZYZYZYZYZYZYZYZYZ
ZAZAZAZAZAZAZAZAZAZAZAZAZA
It should be possible in a single sed invocation, something like
printf \%b {A..Z} A \\n |
sed -E ':1; /^Z/! s/(.)(.)/&\n\2/; :2; /.{26}\n/! s/../&&/; t2; P;D; b1'
but I can't quite get the terminating condition right without resorting to exotic GNU extensions
printf \%b {A..Z} A \\n |
sed -E ":1; /^Z/! s/(.)(.)/&\n\2/; :2; /.{26}(\n|\')/M! s/../&&/; t2; P;D; b1"
paste -d "" <(echo {A..Z} | tr ' ' '\n') <(echo {B..Z} A | tr ' ' '\n') | perl -pe 's/.*/$&x13/e'
– Sundeep Aug 21 '16 at 15:16... | perl -lne 'print $_ x 13'
maybe? – steeldriver Aug 21 '16 at 16:22{B..Z}
-- didn't even think of it, brilliant! – KM. Aug 21 '16 at 21:57