C (gcc), 5045 bytes
f(i){for(i=0;i<26;i=0;++i<27;)printf("%*s%c\n",i++"%*c\n",""i,i+97i+96);}
While this technically invokes undefined behavior, it works with gcc
7.1.1 on my machine. It also works on Try it online!'s gcc
. It does not work with clang
4.0.0 on my machine, but it does when the 97
is changedThanks to a 96
.@Dennis for saving 5 bytes!