scusate ragazzi qualcuno di voi sarebbe in grado di trasformarmi questa funzione in una equivalente ma ricorsiva?

codice:
void disposizioni()  {
struct community *cursor,*cursor1;
cursor,cursor1=head;
while (cursor!=NULL) {
   while (cursor1!=NULL) {
      printf("\n(%i,%i)",cursor->a,cursor->b);
      printf(" (%i,%i)",cursor1->a,cursor1->b);
      cursor1=cursor1->next;
   }
   cursor1=head;
   cursor=cursor->next;
}
}
dove *head punta a una lista di elemeti contenente (int a) e (int b)

questo codice mostra tutte le disposizioni di classe k=2 in N elementi (gli elelemtni dipendono dalla lunghezza della lista)

Ciao!!