По какой причине в списке res значения элементов line меняется, нужно просто все значения line сделать подсписком res
s = ['a', 'b', 'c']
line, res = [], []
n = len(s)
for i in range(1, n + 1):
for j in range(n):
line += s[j]
if len(line) == i:
print(line)
res.append(line)
line.pop(0)
line = []
print(res)
Output:
['a']
['b']
['c']
['a', 'b']
['b', 'c']
['a', 'b', 'c']
[[], [], [], ['c'], ['c'], ['b', 'c']]
https://stepik.org/lesson/416753/step/14?auth=login&unit=406261