code: def make_lists(no_dimensions, step_size, centre_steps=True):
      
      if no_dimensions == 0:
          return [[]]
  
      sub_lists = make_lists(no_dimensions - 1, step_size, centre_steps=centre_steps)
      return [[step_size * value + (0.5 * step_size if centre_steps else 0)] + sub_list for value in
              range(0, int((1 / step_size))) for sub_list in sub_lists]
docs: Create a list of lists of floats covering every combination across no_dimensions of points of integer step size
      between 0 and 1 inclusive.
  
      Parameters
      ----------
      no_dimensions: int
          The number of dimensions, that is the length of the lists
      step_size: float
          The step size
      centre_steps: bool
  
      Returns
      -------
      lists: [[float]]
          A list of lists