I want to generate multiple btc addresses using one private key. I am using pywallet library but each child address also have the private key. Can I use one private key for multiple addresses (if they derived from the same private key) to create a transaction?
You can use extended private key, which is basically other form of expressing mnemonic words. It is string similar to normal private key, but is longer and begins always with "xpriv....". The idea is that you have extended private key and corresponding extended public key. The later enables to generate, say, unlimited amount of addresses and ext-priv-key enables to spend coins sent to that addresses.
If you have just single normal private key, there is no standardized way of generating multiple public keys.