方法一:字符串切片
string = "efghefghd"
if len(string) < 2:
print("字符串不包含字串")
else:
subs = {}
for i in range(0, len(string)-1):
for j in range(i+2, len(string)):
sub_string = string[i:j]
if sub_string in subs:
subs[sub_string] += 1
else:
subs[sub_string] = 1
print(subs)
print(sorted(subs.items(), key=lambda items: items[-1]), reverse=True)
方法二:函数
combinations(iterable,r);创建一个迭代器,返回iterable中所有长度为r的子序列,返回的子序列中的项按输入iterable中的顺序排序
rom itertools import accumulate
def strings(a_string):
if len(a_string) == 1:
return [a_string]
else:
return list(accumulate(a_string)) + strings(a_string[1:])
string_list = strings("abcabcd")
string_set = list(set(string_list))
string_sorted = {}
for i in string_set:
total = 0
if len(i) >= 2:
for j in string_list:
if j == i:
key = i
total += 1
string_sorted[i] = total
print(sorted(string_sorted.items(), key=lambda item: item[-1], reverse=True))