Weaving multiple lists into one
I'm not sure what Class1 is for, but you can weave 2 lists together using a list comprehension to build the first part of the list.  Then add on the rest of the longer list.  Like so:

def weave2(seq1, seq2):
    result = [item for pair in zip(seq1, seq2) for item in pair]

    if len(seq1) &lt; len(seq2):
        result += seq2[len(seq1):]
    else:
        result += seq1[len(seq2):]

    return result


To weave more than two lists, weave the first two together, then weave in the third list, and so on.  Like so:

def weave(*args):
    args = iter(args)
    result = next(args)

    for arg in args:
        result = weave2(result, arg)

    return result