Codility: An activity selection problem about scheduling two enemies to watch movies at a festival
Your code is probably around the best it can be performance wise. And so there's not much point splitting hairs finding anything better.

However you should be able to find something that uses less memory. Something about \$O(L + K)\$ rather than \$O(M^2)\$
I'd split finding indexes, and sums into two separate functions.
Your code, to me, looks slightly wrong.


range(l_start + L, len(movies) - K + 1)



Should probably be:

range(l_start + L, len(movies) - K)

Finally I'd split your code into two more functions, one that performs the sum, and then one that performs the max.


And so I'd change your code to:

def _solution_indexes(movies, K, L):
    for k in range(movies - K):
        for l in range(k + K, movies - L):
            yield k, l

    for l in range(movies - L):
        for k in range(l + L, movies - K):
            yield k, l

def solution_(movies, K, L):
    for k, l in _solution_indexes(len(movies), K, L):
        yield sum(movies[k:k + K]) + sum(movies[l:l + L])

def solution(movies, K, L):
    return max(solution_(movies, K, L), default=-1)