void allPermutations(char* arr, char* desarr, bool* assis, int count, int curindx)
{
if(curindx==count)
{
desarr[curindx]=0;
printf("%s\n",desarr);
return;
}
for(int i=0;i<count;++i)
{
if(assis[i]==false)
{
desarr[curindx]=arr[i];
assis[i]=true;
allPermutations(arr,desarr,assis,count,curindx+1);
assis[i]=false;
desarr[curindx]=0;
}
}
}
void allPermutations(char* arr)
{
if(arr==NULL)
return;
int length=strlen(arr);
char* desarr=new char[length+1];
memset(desarr,0, sizeof(char)*(length+1));
bool* assis=new bool[length];
memset(assis,0, sizeof(bool)*(length));
allPermutations(arr,desarr,assis,strlen(arr),0);
delete []desarr;
delete []assis;
}
int _tmain(int argc, _TCHAR* argv[])
{
srand(time(0));
allPermutations("abc");
getchar();
return 0;
}