#include <iostream>
#include <string>
void permute( std::string prefix, std::string s )
{
if ( s.size() <= 1 )
std::cout << prefix << s << "\n";
else
for ( char *p = s.begin(); p < s.end(); p++ )
{
char c = *p;
s.erase( p );
permute( prefix + c, s );
s.insert( p, c );
}
}
int main()
{
permute( "", "12345" );
return 0;
}
End of Listing