input: Write a function to implement a simple blockchain system in Python. The function should include defining the Block class with methods to initialize the block, generate its hash, and create the blockchain. Additionally, the function should include methods to print the contents of the blockchain.
  
  assert create_blockchain() is not None
  assert print_blockchain() is not None
  
output: class Block:
      def __init__(self, index, previous_hash, data, timestamp):
          self.index = index
          self.previous_hash = previous_hash
          self.data = data
          self.timestamp = timestamp
          self.hash = self.generate_hash()
  
      def generate_hash(self):
          block_string = f"{self.index}{self.previous_hash}{self.data}{self.timestamp}"
          return hashlib.sha256(block_string.encode()).hexdigest()
  
  def create_blockchain():
      blockchain = []
      genesis_block = Block(0, "0", "Genesis Block", "2023-10-01T00:00:00Z")
      blockchain.append(genesis_block)
      return blockchain
  
  def print_blockchain(blockchain):
      for block in blockchain:
          print(f"Index: {block.index}")
          print(f"Previous Hash: {block.previous_hash}")
          print(f"Data: {block.data}")
          print(f"Timestamp: {block.timestamp}")
          print(f"Hash: {block.hash}")
          print()