We modified the Tower of Hanoi program to write out the positions of the disks at each step:
{$mode delphi}
{$r+}
uses strutils, sysutils;
var
n: integer;
pegs: array[1..3] of string;
procedure draw;
var
p: integer;
begin
for p := 1 to 3 do
write(ifThen(pegs[p] = '', '-', pegs[p]):n, ' ');
writeln;
end;
procedure move(n: integer; fromPeg: integer; toPeg: integer);
begin
if n = 0 then exit;
move(n - 1, fromPeg, 6 - fromPeg - toPeg);
// move disk n from fromPeg to toPeg
pegs[fromPeg] := rightStr(pegs[fromPeg], length(pegs[fromPeg]) - 1);
pegs[toPeg] := intToStr(n) + pegs[toPeg];
draw;
move(n - 1, 6 - fromPeg - toPeg, toPeg);
end;
var
i: integer;
begin
readln(n);
writeln;
for i := 1 to n do
pegs[1] := pegs[1] + intToStr(i);
pegs[2] := '';
pegs[3] := '';
draw;
move(n, 1, 3);
end.