3-4 weeks is wayyyy to young. Like Melissa said, 8 weeks is best.
The reasoning is it gives them a chance to get fully weaned plus in the 6-8 week age range they learn their "life skills" from mom and the siblings.
Puppies that stay with mom and litter mates until they are at least 8 weeks of age generally have better temperments and are just all around more healthy (mind and body).
I have never met a responsible breeder that would let a puppy go at 3-4 weeks old. If they were willing to do so, I would question their ethics. In some states it is even illegal to sell a puppy earlier than 8 weeks.