public static void Main()
var str = "облако".ToCharArray();
GetCombinations(string.Empty, str);
private static void GetCombinations(string currentStr, char[] left) {
for (int i = 0; i < left.Length; i++) {
var result = currentStr + left[i];
Console.WriteLine(count + ": " + result);
var next = left.Take(i).Concat(left.Skip(i+1)).ToArray();
GetCombinations(result, next);