Write

```python
function combine()
```

that combines arrays by alternatingly taking elements passed to it.

E.g

```python
combine(['a', 'b', 'c'], [1, 2, 3]) == ['a', 1, 'b', 2, 'c', 3]
combine(['a', 'b', 'c'], [1, 2, 3, 4, 5]) == ['a', 1, 'b', 2, 'c', 3, 4, 5]
combine(['a', 'b', 'c'], [1, 2, 3, 4, 5], [6, 7], [8]) == ['a', 1, 6, 8, 'b', 2, 7, 'c', 3, 4, 5]
```

Arrays can have different lengths.

Difficulty: introductory

Starter code:

def combine(*args):
	

Solutions:
def combine(*args):
  out = list()
  for i in range(len(max(args, key=len))): #Sometimes you just have to love python
    for arr in args:
      if i < len(arr): out.append(arr[i])
  return out

from itertools import chain, zip_longest

def combine(*args):
    return [x for x in chain.from_iterable(zip_longest(*args)) if x is not None]


def combine(*args):
    res = []
    num_of_args = len(args)
    len_of_longest_list = max([len(l) for l in args])

    for i in range(len_of_longest_list):
        for j in range(num_of_args):
            if len(args[j]) > i:
                res.append(args[j][i])
    return res
        


combine = lambda *args: [el[0] for el in args] + combine(*[el[1:] for el in args if len(el)>1]) if args else []

from copy import deepcopy


def combine(*args):
    if not args:
        return []
    args_list = list(deepcopy(args))
    first = args_list.pop(0)
    head = first.pop(0)
    if first:
        args_list.append(first)
    return [head] + combine(*tuple(args_list))

from itertools import zip_longest
def combine(*args):
    return [y for x in zip_longest(*args) for y in list(x) if y is not None]

def combine(*args):
    result = []
    l = len(max(args, key=len))
    for loop in range(l):
        result.extend(array[loop] for array in args if len(array) > loop)
    return result


def combine(*args):
    L = max(len(i) for i in args)
    t = []
    j = 0
    while j<L:
        for i in args:
            try:
                t.append(i[j])
            except:
                pass
        j += 1
    return t        

def combine(*args):
    result = []
    args_length = len(args)
    max_len_list = max([len(l) for l in args])
    for i in range(max_len_list):
        for j in range(args_length):
            if len(args[j]) > i:
                result.append(args[j][i])
    return result