#include <iostream>
#include <string>
#include <fstream>
using namespace std;
// function all orders
void All_orders(string A,string B,string::size_type n,ofstream &f);
// function randstring
string RandString();
// function main
int main()
{
int i = 0;
while(i<1)
{
ofstream f;
f.open("txt.txt");
string test = RandString();
cout<<"test="<<test<<endl;
All_orders("",test,0,f);
f.close();
i++;
}
system("pause");
return 0;
}
// function all orders
void All_orders(string A,string B,string::size_type n,ofstream &f)
{
if(n < B.length())
{
string next = A;
next = B[n] + A;
All_orders(next,B,n+1,f);
for(string::size_type i = 1;i < A.length();i++)
{
next = A.substr(0,i)+B[n]+A.substr(i,A.length());
All_orders(next,B,n+1,f);
}
if(A.length()>0)
{
next = A + B[n];
All_orders(next,B,n+1,f);
}
}
else if(n == B.length())
{
cout<<A<<" "<<endl;
f<<A<<endl;
}
}
// function randstring
string RandString()
{
int size = 4;
string result = "";
for(int i = 0; i<size; i++)
{
result = result + (char)( ‘a‘ + rand()%10 );
}
return result ;
}