codice:
#include <string>
#include <iostream>
using namespace std;
void Anagramma(string A, string B)
{
if (A.size() == 0) cout << B << endl;
else
{
string Doppie;
for (int i = 0; i < A.size(); i++)
{
char temp[2];
temp[0] = A[i]; temp[1] = '\0';
if (Doppie.find(temp, 0) == string::npos)
{
A.erase(i, 1);
Anagramma(A, B + temp);
Doppie += temp;
A.insert(i, temp);
}
}
}
}
int main()
{
string A;
cin >> A;
cout << endl;
Anagramma(A, "");
}
MAGIA !!! Incoraggiato da Lele ho cercato di migliorare il programma ! Ora questo qui dovrebbe evitare i doppioni.