Python如何迭代字符串

求一个字符串集的所有子串,如‘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