I want to define a function called "create_matrix" that first creates an l1+1 by l2+1 matrix of zeros (implemented as a list of list; NOT numpy). Next, the function should set the first row to be [0, 1, 2, ..., l2], and the first column to be [0, 1, 2, ..., l1].
However, running the function create_matrix(7,8) returns the following matrix (see picture), which is not expected. Could you please tell me why?
def create_matrix(l1, l2):
    matrix = [[0]*(l2+1)]*(l1+1)
    matrix[0] =  [i for i in range(0,l1+2)]
    counter = 0 
    for inner_list in matrix:
        inner_list[0] = counter 
        counter += 1 
    return matrix
create_matrix(7,8)

 
    