How many addresses can an HD wallet generate ?
An HD wallet can generate an infinite number of addresses.
This diagram should help in understanding how the keys are generated.
If you want to dive into the technical details, here’s a good source:
A private key is 256 bit number, the maximum number of addresses is therefore less than 2^256 .
How can a wallet generate more than 2^256 addresses ?
Private keys in Cardano are 96 bytes long and public keys are 64 bytes long.