private static void permute(String prefix,String str,
Console.WriteLine(prefix+str);
for (int i = l; i <= r; i++)
prefix = swap(prefix, l, i);
permute(prefix,str, l + 1, r);
prefix = swap(prefix, l, i);
public static String swap(String a,
char[] charArray = a.ToCharArray();
charArray[i] = charArray[j];
string s = new string(charArray);
public static void Main()
if(prefix.Length.Equals(str.Length))
permute(prefix,str, 0, n-1);
Console.WriteLine("Error. Strings have to be equal in length");