Torre de Hanoi: Algoritmo Recursivo

Embora eu não tenha problema algum em compreender a recursão, parece que não consigo envolver minha cabeça na solução recursiva do problema da Torre de Hanói. Aqui está o código deWikipedia:

procedure Hanoi(n: integer; source, dest, by: char);
Begin
    if (n=1) then
        writeln('Move the plate from ', source, ' to ', dest)
    else begin
        Hanoi(n-1, source, by, dest);
        writeln('Move the plate from ', source, ' to ', dest);
        Hanoi(n-1, by, dest, source);
    end;
End;

Eu entendo o caso básico e o conceito de dividir o problema em pedaços menores até que você consiga mover um único disco. No entanto, não consigo descobrir como as duas chamadas recursivas no caso não-base funcionam juntas. Talvez alguém possa me ajudar? Obrigado.

questionAnswers(24)

yourAnswerToTheQuestion