Download speed low over http but Iperf is showing a high bandwidth
First, are you sure you didn't confuse megabytes with megabits or vice versa?
Megabytes: 3.2MB/s - 6.4MB/s
Megabits: 25.6Mb/s - 51.2Mb/s
If you're sure that part is correct, then:
Try other software like apache, nginx, scp, ftp, whatever... it's won't take long. Maybe it's just your python script that's responsible. Same on the client side - try a browser, wget, curl, ftp, scp, whatever... Try http (and maybe https) over a different port like the one iperf is using. If you get different speeds with different ports/protocols consistently, talk to your provider. That's not supposed to happen.
If you want a second opinion over iperf
you can use netcat
https://jbowes.wordpress.com/2010/10/13/measuring-network-speeds-with-netcat-and-dd/