Listing 2: The program permute.cpp

#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 —