permutação com recursividade

Opa.
Eu tenho q fazer um metodo recursivo capaz de apresentar todas permutações possiveis em um vetor de tamanho n.
Será que alguém poderia me ajudar???
Exemplo: n = 3
0 1 2
vetor= |1| - |2| - |3|

1 1 2 1
2 1 3 2
3 2 1 3
4 2 3 1
5 3 1 2
6 3 2 1

PERMUTAÇÃO
de n = 3

P3! = 6

Olá, vc já tentou fazer algo? ou não sabe por onde começar???