Programación en C: dos para bucles a recursividad

Estaba tratando de hacer una función recursiva que simulara dos para bucles. Entonces, la función tendría que hacer esto:

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);
        }
    }
}

pero, quiero que sea recursivo. Intenté 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);
    }
}

Yo llamaría uno recursivo en main como

recursion(10, 0, 1);

pero la salida no es la misma para esas dos versiones de función. ¿Alguien puede decirme dónde estoy confundiendo con el recursivo?

Respuestas a la pregunta(3)

Su respuesta a la pregunta