input: Write a python function to perform multithreaded mining with a difficulty level and a starting nonce value.
  assert mining(1, 0) is not None
  assert mining(2, 100) is not None
  assert mining(3, 200) is not None
output: import hashlib
  import threading
  
  def mine(difficulty, start_nonce, result):
      prefix = '0' * difficulty
      nonce = start_nonce
      
      while True:
          hash_result = hashlib.sha256(str(nonce).encode()).hexdigest()
          if hash_result.startswith(prefix):
              result.append((nonce, hash_result))
              return
          nonce += 1
  
  def mining(difficulty, start_nonce):
      result = []
      threads = []
      
      for i in range(4):  # Creating 4 threads
          thread = threading.Thread(target=mine, args=(difficulty, start_nonce + i, result))
          threads.append(thread)
          thread.start()
      
      for thread in threads:
          thread.join()
      
      return result[0] if result else None