Splitting a list by indexes
There is a lot simpler way to do this. You can use list slicing and the zip function.

List slicing essentially cuts up a given list into sections. The general form is list[start:stop:step]. The start section of a slice designates the first index of the list we want to included in our slice. The stop section designates the first index of the list we want excluded in our slice. The step section defines how many indices we are moving as well as in which direction (based on whether it is positive or negative). An example:

&gt;&gt;&gt; x = [1, 2, 3, 4]
&gt;&gt;&gt; x[1:3]
[2, 3]
&gt;&gt;&gt; x[2:]
[3, 4]
&gt;&gt;&gt; x[0:4]
[1, 2, 3, 4]
&gt;&gt;&gt; x[0:4:1]
[1, 2, 3, 4]
&gt;&gt;&gt; x[0:4:2]
[1, 3]
&gt;&gt;&gt; x[0:4:3]
[1, 4]
&gt;&gt;&gt; x[0:4:4]
[1]
&gt;&gt;&gt; x[0:4:5]
[1]




The zip function takes sequences and creates a zip object that contains tuples of their corresponding index elements:

&gt;&gt;&gt; for pair in zip([1, 2, 3], ['a', 'b', 'c']):
...    print(pair)
(1, 'a')
(2, 'b')
(3, 'c')




You can combine these two strategies to simplify your function. Here is my version of your lindexsplit function:    

def lindexsplit(some_list, *args):
    # Checks to see if any extra arguments were passed. If so,
    # prepend the 0th index and append the final index of the 
    # passed list. This saves from having to check for the beginning
    # and end of args in the for-loop. Also, increment each value in 
    # args to get the desired behavior.
    if args:
        args = (0,) + tuple(data+1 for data in args) + (len(some_list)+1,)

    # For a little more brevity, here is the list comprehension of the following
    # statements:
    #    return [some_list[start:end] for start, end in zip(args, args[1:])]
    my_list = []
    for start, end in zip(args, args[1:]):
        my_list.append(some_list[start:end])
    return my_list