public static void buildLowestNumber(string str, int n, StringBuilder res)
int len = str.Length - 1;
for (int i = 1; i<=n ; i++)
if (str[i] < str[minIndex])
res.Append(str[minIndex]);
string new_str = str.Substring(minIndex+1, len-minIndex);
buildLowestNumber(new_str, n-minIndex, res);
public static string GenerateLowestNumber(string number, int n)
StringBuilder res = new StringBuilder();
buildLowestNumber(number, n, res);
public static void Main()
Console.WriteLine(GenerateLowestNumber(str, n));