using System.Collections.Generic;
public static List<string> FindStrings(string s, int n) {
if (string.IsNullOrEmpty(s)) {
return new List<string>{ };
for (var i=s.Length-1; i>=0; i--){
var startOfString = s.Substring(0, i);
var endOfString = s.Substring(i);
var list = FindStrings(startOfString, n-1);
if (list == null) continue;
if (list.Count != n-1) continue;
if (list.Contains(endOfString)) continue;
public static void Print(List<string> strs){
Console.WriteLine("No set possible");
foreach(var str in strs){
public static void Main()
Print(FindStrings("aababa", 4));