def allSubArrays(L,L2=None):
if L2==None:
L2 = L[:-1]
if L==[]:
if L2==[]:
return []
return allSubArrays(L2,L2[:-1])
return [L]+allSubArrays(L[1:],L2)
Приведенный выше фрагмент кода генерирует все смежные подмассивы.
Пример: list = [1,2,3]
Вывод: [[1], [2], [3], [1,2], [2,3], [1,2,3]]
Кажется, что работает отлично, когда длина списка мала, но даетошибка времени выполнения для больших списков.
Как оптимизировать ее, чтобы она работала и для больших списков?