Como esta recursão funciona?

Este é um exemplo do Eloquent Javascript:

Começando pelo número 1 e repetidamente adicionando 5 ou multiplicando por 3, uma quantidade infinita de novos números pode ser produzida. Como você escreveria uma função que, dado um número, tenta encontrar uma sequência de adições e multiplicações que produza esse número?

Estou tendo problemas para entender como a recursão está funcionando aqui, imaginando se alguém poderia escrever algumas vezes como o resultado está sendo chamado ou alguma outra explicação.

function findSequence(goal) {
  function find(start, history) {
    if (start == goal)
      return history;
    else if (start > goal)
      return null;
    else
      return find(start + 5, "(" + history + " + 5)") ||
             find(start * 3, "(" + history + " * 3)");
  }
  return find(1, "1");
}

console.log(findSequence(24)); // => (((1 * 3) + 5) * 3)

questionAnswers(11)

yourAnswerToTheQuestion