Splitting a list of strings into sublists where total of bytes of each sublist is <= N
You can greatly reduce the size of your code by using a total integer and one result list.  You can access the last item in the list by using result[-1].  Additionally, you can reduce the number of times you raise an error by just checking the size of each grouping.

def break_lst(lst, size):
    total = 0
    result = [[]]
    for v in lst:
        total += len(v)
        if total &lt;= size:
            result[-1].append(v)
        else:
            total = len(v)
            if total &gt; size:
                raise Exception("Error: use a bigger size than {}".format(size))
            result.append([v])
    return result