求一个字符串集的所有子串,如‘abcd’,结果得‘a’、‘b’、‘c’、‘d’、‘ab’、‘abc’、‘abcd’、‘bc’、‘bcd’、‘cd’。现有思路对每个字符串循环遍历,控制长度判重后存储到列表中,但如果字符串过长,数目过多循环次数多,程序运行不了。麻烦各位大能门给点建议,谢谢。
# -*- coding: utf-8 -*-
def sub(string):
length = len(string)
for i in range(length):
for j in range(i, length):
print(string[i:j+1])
sub('abcd')
运行结果如下:
参考一下:
a=‘abcd’
la = len(a)
l = 0
while l <= la:
for i in range(la):
if i+l > la:
break
print(a[i:i+l])
l += 1