Allora ragazzi, sono sempre io e chiedo sempre perchè ho in vista un esame x l'università

questo è il codice di un programma che deve restituire le lettere di una stringa..nel senso che se io do "ABCD"lui mi deve restituire
A,B
A,C
A,D
B,C
B,D
C,D

Il programma deve essere effettuato con la ricorsione e questo funziona in parte perche dopo che mi restituisce i valori con "A" al posto di darmi solo "B" mi restituisce "AB".
Volevo sapere se è possibile far visualizzare un solo carattere di una stringa!
ho provato con "printf("%s",&lettere[n]);", ma mi restituisce tutti i caratteri dalla posizione 'n' in poi.
se al posto di '%s' metto '%c' mi da risultati sbagliati.
Come posso fare??

:::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 15

void visualizza(char lettere[],char modifica[], int num);
int n;

int main ()
{

int num;
char lettere[MAX];
char modifica[MAX];

printf("Inserisci le lettere da elaborare.\n");
scanf("%s", lettere);
num = strlen(lettere);
strcpy (modifica, lettere);
for (n= num-1; n != 0; --n, --num){
visualizza(lettere, modifica, num);
}

printf("\n");
system("pause");
return(0);
}
void visualizza(char lettere[], char modifica[], int num)
{
if(num !=1){
strcpy(modifica, &lettere[num-2]);
printf("\n%s , %c",&lettere[n],modifica[0]);
visualizza(lettere, modifica, num-1);
}
}
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::


GRAZIE IN ANTICIPO