Programação C - Dois para loops para recursão

Eu estava tentando criar uma função recursiva que simulasse dois para loops. Portanto, a função teria que fazer isso:

int recursion(int n, int i, int j)
{
    for(i=0; i<n; i++)
    {
        for(j=i+1; j<n; j++)
        {
            printf("%d %d\n", i, j);
        }
    }
}

mas quero que seja recursivo. Eu tentei algo como:

int recursion(int n, int i, int j)
{
    if(i<n)
    {
        if(j<n)
        {
            printf("%d %d\n", i, j);
            recursion(n, i+1, j+1);
        }
        recursion(n, i+1, i+1+1);
    }
}

Eu chamaria um recursivo em principal como

recursion(10, 0, 1);

mas a saída não é a mesma para essas duas versões da função. Alguém pode me dizer onde estou me enganando com a recursiva?

questionAnswers(3)

yourAnswerToTheQuestion