Make the 2D list by the sequential integers started by the ```head``` number.

See the example test cases for the expected output.

``` 
Note:

-10**20 < the head number <10**20
1 <=  the number of rows <= 1000
0 <=  the number of columms <= 1000
```

Source: codewars | Difficulty: EASY
Tags: Fundamentals

Starter code: def make_2d_list(head,row,col):
	

Solutions:
def make_2d_list(head, row, col):
	return [[head + c + r * col for c in range(col)] for r in range(row)]


import numpy as np

def make_2d_list(head, row, col):
	return np.array(list(range(head, head + row * col))).reshape(row, col).tolist()


make_2d_list = lambda Q, R, C: [[Q + C * r + c for c in range(C)] for r in range(R)]


from itertools import count

def make_2d_list(head, row, col):
	c = count(0)
	return [[head + next(c) for _ in range(col)] for _ in range(row)]


import numpy as np

def make_2d_list(head, row, col):
	x = np.arange(head, head + row * col)
	x = x.reshape(row, col)
	return x.tolist()


def make_2d_list(head, row, col):
	return [[]] if col == 0 else [list(x) for x in zip(*[iter(range(head, head + row * col))] * col)]


def make_2d_list(head, row, col):
	return [list(range(i, i + col)) for i in range(head, head + row * col, col)] if col else [[]]


def make_2d_list(head, row, col):
	count = head
	arr2 = []
	for i in range(row):
		arr = []
		for j in range(col):
			arr.append(count)
			count += 1
		arr2.append(arr)
	return arr2


def make_2d_list(head, row, col):
	r = []
	x = head
	for _ in range(row):
		r.append(list(range(x, x + col)))
		x += col
	return r