Вот мой код на Python. Он генерирует все возможные подстроки любой данной строки.
def find_substring(str_in):
substrs = []
if len(str_in) <= 1:
return [str_in]
s1 = find_substring(str_in[:1])
s2 = find_substring(str_in[1:])
substrs.append(s1)
substrs.append(s2)
for s11 in s1:
substrs.append(s11)
for s21 in s2:
substrs.append("%s%s" %(s11, s21))
for s21 in s2:
substrs.append(s21)
return set(substrs)
Если вы передадите str_ = "abcdef" в функцию, она выдаст следующие результаты:
a, ab, abc, abcd, abcde, abcdef, abcdf, abce, abcef, abcf, abd, abde, abdef, abdf, abe, abef, abf, ac, acd, acde, acdef, acdf, ace, acef , акф, объявление, аде, адеф, адф, ае, эйф, аф, б, бк, бкд, бкдэ, бкдеф, бкдф, бцэ, бчеф, бцф, бд, бдэ, бдэф, бдф, бе, беф, бф, с , cd, cde, cdef, cdf, ce, cef, cf, d, de, def, df, e, ef, f