input: Write a function to generate all possible combinations of elements from three lists using itertools.product.
  assert generate_combinations([1, 2, 3], ['a', 'b', 'c'], [7, 8]) == [[1, 'a', 7], [1, 'a', 8], [1, 'b', 7], [1, 'b', 8], [1, 'c', 7], [1, 'c', 8], [2, 'a', 7], [2, 'a', 8], [2, 'b', 7], [2, 'b', 8], [2, 'c', 7], [2, 'c', 8], [3, 'a', 7], [3, 'a', 8], [3, 'b', 7], [3, 'b', 8], [3, 'c', 7], [3, 'c', 8]]
  assert generate_combinations([1, 2], ['x', 'y'], [9]) == [[1, 'x', 9], [1, 'y', 9], [2, 'x', 9], [2, 'y', 9]]
  assert generate_combinations([4], ['w', 'z'], [10, 11]) == [[4, 'w', 10], [4, 'w', 11], [4, 'z', 10], [4, 'z', 11]]
output: def generate_combinations(list1, list2, list3):
      from itertools import product
      return [list(combination) for combination in product(list1, list2, list3)]