E' come una combinazione però tiene conto anche della posizione degli elementi.
{A,B,C} e {A,C,B} sono la stessa combinazione, ma non la stessa permutazione.
Nel tuo programma "AAB" deve valere 2 , ma anche "BAA" deve valere 2 ?
Comunque visto che lavori in C++, se il valore è di una cifra sola gli vanno aggiunti due zeri, ma questo è facile da fare usando la classe string.
Una cosa del tipo:
codice:
string str("000");
str[2]=valore+48;  // perchè in ASCII '0' = 48