0

Create a program which prints itself, followed by an additional program. This additional program should print the first program, itself, and then a third program. This continues until the nth program, which prints every program in order up to itself, but fails to print a successor.

All programs output by your code should be delimited in the same way across all iterations.

Example:

Program 1

Print(Me,MyEvilTwin)

Prints

Print(Me,MyEvilTwin)

Print(Me,MyEvilTwin,MyEvilTwin'sEvilTwin)

The generated program 2

Print(Me,MyEvilTwin,MyEvilTwin'sEvilTwin)

Prints

Print(Me,MyEvilTwin)

Print(Me,MyEvilTwin,MyEvilTwin'sEvilTwin)

Print(Me,MyEvilTwin,MyEvilTwin'sEvilTwin), And How!

The final generated program 3,

Print(Me,MyEvilTwin,MyEvilTwin'sEvilTwin), And How!

Prints

Print(Me,MyEvilTwin)

Print(Me,MyEvilTwin,MyEvilTwin'sEvilTwin)

Print(Me,MyEvilTwin,MyEvilTwin'sEvilTwin), And How!

Which fails to include a 4th program, making this 3 iterations.

Scoring

Your score is the number of iterations your program achieves. For programs with the same number of iterations, shortest code wins.