def pack(join, alist):
    """Interleave a list with a value

    This function interleaves a list of values with the joining
    element.

    Params:
        join -- The value to be interleaved within the list
        alist -- The supplied list

    Returns:
         A new list
         pack("a",[1,2,3,4]) ==> ["a",1,"a",2,"a",3,"a",4]
    """
    newList = []
    for el in alist:
        blk = [el, join]
        newList.extend(blk)
    return newList