Python で
s= "ABCC"
n = len(s)
sorted(set([s[a:b] for a in range(n) for b in range(a+1,n+2)])
繰り返しなしでアルファベット順にソートされたサブ文字列が得られます
['A', 'AB', 'ABC', 'ABCC', 'B', 'BC', 'BCC', 'C', 'CC']
部分文字列の長さでさらに並べ替えるにはどうすればよいですか。
['A', 'B', 'C', 'AB', 'BC', 'CC', 'ABC', 'BCC', 'ABCC']