input: Write a function that takes two lists as input and returns a single list of tuples, where each tuple contains elements from both lists at the corresponding positions. If the lengths of the two lists are not the same, the function should effectively treat the shorter list as if it has been filled with `None` to match the length of the longer list.
  
  def combine_list(array1, array2):
      return list(zip_longest(array1, array2, fillvalue=None))
  
  assert combine_list([1, 2, 3], [4, 5, 6])==[(1, 4), (2, 5), (3, 6)]
  assert combine_list([1, 2], [4, 5, 6])==[(1, 4), (2, 5), (None, 6)]
  assert combine_list([1, 2, 3], [4, 5])==[(1, 4), (2, 5), (3, None)]
  assert combine_list([], [4, 5, 6])==[(None, 4), (None, 5), (None, 6)]
  assert combine_list([1, 2, 3], [])==[(1, None), (2, None), (3, None)]
output: def combine_list(array1, array2):
      max_len = max(len(array1), len(array2))
      return [(array1[i] if i < len(array1) else None, array2[i] if i < len(array2) else None) for i in range(max_len)]