In fin dei conti quindi non stai cercando combinazioni, ma permutazioni, giusto? La STL fornisce un algoritmo pronto all'uso per questo scopo (std::next_permutation).