How can I make a multicall transaction using web3.py and pancakeswap router?

I need to do a multihop swap. For example : BNB->USDT->TOKEN. I am trying to do this swap using pancakeswap roter v2 swapExactETHForTokens method. But I get execution reverted

swap_path = [input_token_address,
                Web3.toChecksumAddress('0x55d398326f99059ff775485246999027b3197955'),
                output_token_address]
tx = self.contract.functions.swapExactETHForTokens(min_tokens, swap_path, account_address (int(time.time()) + 10000)).buildTransaction(
    
    { 'from': account_address,
      'value': input_quantity_wei,
      'gasPrice': Web3.toWei(current_gas, 'gwei'),
      'nonce': self.web3.eth.getTransactionCount(account_address)
    })

How can I perform such a swap in a single transaction using web3 py?

I recommend checking the docs, that swap function expects 4 elements as per docs

function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
  external
  payable
  returns (uint[] memory amounts);

Also they specify here what needs to be in the path

Swaps an exact amount of ETH for as many output tokens as possible, along the route determined by the path. The first element of path must be WETH, the last is the output token, and any intermediate elements represent intermediate pairs to trade through (if, for example, a direct pair does not exist).