using System.Collections.Generic;
public static void Main(string[] args)
foreach (var r in Split("59145"))
Console.WriteLine(string.Join(",", r));
static IEnumerable<List<string>> Split(string input)
return Split(input, new List<string>());
static IEnumerable<List<string>> Split(string input, List<string> current)
var copy = current.ToList();
copy.Add(input.Substring(0, 1));
foreach (var r in Split(input.Substring(1), copy))
var copy = current.ToList();
copy.Add(input.Substring(0, 2));
foreach (var r in Split(input.Substring(2), copy))