Partição progressiva

Retorne todas as formas de dividir um array entre dois elementos adjacentes. Cada partição contém uma parte esquerda não vazia e uma parte direita não vazia, na ordem das posições de divisão.

Exemplo

Program.movingPartition(new int[]{1, 2, 3}) ➞ new int[][][]{
  {{1}, {2, 3}},
  {{1, 2}, {3}}
}

Um array vazio não tem partições.