Program ordinals and omega squared
Python 2, 67 63 65 bytes

x=&quot;&quot;
while 1:x=&quot;x=%r\nwhile 1:x='print%%r;'%%x;exec x;&quot;%x;print x

Try it online!
Use the same strategy as @UnrelatedString's answer, be sure to check out and upvote his answer!
Repeatedly print out programs with ordinal \$0, \omega, \omega2, \omega3,\ldots \$. The programs are separated by the string &quot;;\n&quot; (a semi-colon and a new line).
68 bytes to separate programs by a blank line.
Explanation
A program with ordinal \$n+1\$ is created by adding a print statement around an \$n\$-ordinal program:
print &lt;escaped string of ordinal-n program&gt;

A program with ordinal \$\omega(n+1)\$ is created by repeatedly printing out programs with ordinal \$\omega n, \omega n+1,\omega n+2,\ldots\$
x = &lt;string of omega*n program&gt;
while 1:
  x = 'print %r' % x
  exec x

Note the use of %r, which escapes the given string x. This way, we don't have to worry about quote and new line characters.
Finally, a program with ordinal \$\omega^2\$ is created by repeatedly printing out programs with ordinal \$0, \omega, \omega 2,\omega 3,\ldots\$:
# string of program to go from omega*n to omega*(n+1)
s = &quot;x=%r\nwhile 1:x='print%%r'%%x;exec x&quot; 
# current omega*n program, start with n=0
x = &quot;&quot;
while 1:
  # create the omega*(n+1) program from omega*n
  x = s % x
  # print it out
  print x