input: Write a function to generate a random password given a set of letters, numbers, and characters. The function should return the generated password as a string.
  assert generate_password() == "random_password"
  assert generate_password() == "another_random_password"
  assert generate_password() == "yet_another_random_password"
  assert generate_password() == "final_random_password"
  assert generate_password() == "new_random_password"
output: import random
  import string
  
  def generate_password():
      characters = string.ascii_letters + string.digits + string.punctuation
      password = ''.join(random.choice(characters) for _ in range(12))
      return password