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.

Source: codewars | Difficulty: EASY
Tags: Fundamentals

Starter code: def combine(*args):
	

Solutions:
def combine(*args):
	out = list()
	for i in range(len(max(args, key=len))):
		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