Позволяет делать это без вложенного l oop!
Это игра с библиотекой random
, но время выполнения похоже на ваш код.
from random import randint
list1=[]
str1='abcde'
while len(list1)!=int(((len(str1)+1)*len(str1))//2):
i=randint(0,len(str1))
j=randint(0,len(str1))
i,j=max(i,j),min(i,j)
if i!=j:
a=str1[j:i]
if a not in list1:
list1.append(a)
print(a)
если строка, str1 = 'abcdef'
, он печатает:
de
abcdef
cdef
abc
ef
d
c
abcd
b
abcde
def
bcde
f
bcdef
a
bcd
cd
e
ab
cde
bc
Теперь, если вы хотите, чтобы ваши данные в указанном вами порядке, используйте sort
:
list1.sort()