def generate_panel_arrays(nx, ny, panel_size, indentation, offset_x, offset_y):
    """Generate a rectangular array of nx-by-ny panels of the same panel_size 

    nx, ny: int, how many panels do you want in X-axis and Y-axis. 
    panel_size: (int, int), dimension of the panels
    offset_x, offset_y: int, move around the array 
    indentation: int, shift between two rows of panels in X-axis. 
    """
    (dx, dy) = panel_size

    # indentation on x axis only
    Array = [(i*panel_size[0] + indentation*j%dx + offset_x, j*panel_size[1] + offset_y) 
             for i in range(nx)
             for j in range(ny)
    ] # bottom-left of each panel
    return Array