using System.Collections.Generic;
public static void Main()
string[] data = new string[] { "hi","mr","kabilan" };
Permute(data,0, data.Length-1);
static string input = "hikabilanmryeskabilanmrhiyup";
static List<int> res = new List<int>();
public static void Permute(string[] data, int startPos, int endPos){
var str = string.Join("",data);
var index = input.IndexOf(str);
Console.WriteLine((++counter).ToString()+" "+str+" "+index);
if(index >= 0) res.Add(index);
for(int i=startPos;i<=endPos;i++) {
Permute(data, startPos+1, endPos);
public static void Swap(string[] data, int pos1, int pos2) {