Как получить все возможные части списка?

У меня есть список, включающий в себя несколько вещественных чисел:

a = ['2.4', '5.2', '-10.6', '4.0', '7.8']

Мне нужно получить другой список, который состоит из всех возможных частей исходного списка. Частью списка я называю несколько элементов этого списка, которые идут подряд друг за другом. Думаю, это может выглядеть примерно так:

b = [['2.4', '5.2'],
     ['5.2', '-10.6'],
     ['-10.6', '4.0'],
     ['4.0', '7.8'],
     ['2.4', '5.2', '-10.6'],
     ['5.2', '-10.6', '4.0'],
     ['-10.6', '4.0', '7.8'],
     ['2.4', '5.2', '-10.6', '4.0'],
     ['5.2', '-10.6', '4.0', '7.8'],
     ['2.4', '5.2', '-10.6', '4.0', '7.8']]

Порядок, в котором части списка a будут располагаться в списке b, не имеет значения. Количество элементов в списке a небольшое, обычно 10-20, но иногда может быть немного больше. Пожалуйста, скажите, как это можно сделать?


Ответы (1 шт):

Автор решения: Danis
len_ = len(a) + 1
for i in range(2, len_):
    for j in range(len_ - i):
        print(a[j:j + i])
len_ = len(a) + 1
b = [a[j:j + i] for i in range(2, len_) for j in range(len_ - i)] 
→ Ссылка