In C++ you can use std::next_permutation
to go through permutations one by one. You need to sort the characters alphabetically before calling std::next_permutation
for the first time:
cin>>anagrama;
int len = strlen(anagrama);
sort(anagrama, anagrama+len);
do {
cout << anagrama << endl;
} while (next_permutation(anagrama, anagrama+len));
Here is a demo on ideone.
If you must implement permutations yourself, you could borrow the source code of next_permutation
, or choose a simpler way of implementing a permutation algorithm recursively.