Try infousa, it won’t be free though.
I believe that there *DOES NOT* exist a free service of this nature. My understanding is that the commercial vendors who provide comprehensive address data (for money) first must prove to the US Postal Service that they have developed in-house a compelling percentage of the addresses within a given Zip Code before they are allowed access to a comprehensive list. To my knowledge the best free source of free geospatial address data is the US Census TIGER database. In working with these data, you can certainly acquire a list of streets by Zip Code and by block number, so that for example in Reston Virginia there is a Victory Drive with address range between (I am making up these numbers) 1001-1199. You could correctly surmise that this represents the 1000 and 1100 blocks of Victory Dr. However, what you cannot determine from any universal free source is what the actual parcel addresses are. Perhaps there is a 1002, 1010, 1012, and 1020 Victory Dr. but no 1004,1006,1014,1016,1018 etc (walk down any street anywhere and you’ll know what I mean: addresses within a block don’t go 1-2-3-4 or even 1-3-5-7).
Within any given municipal jurisdiction, this information may or may not be available. In the best case, municipalities/counties have a publicly available parcel database, against which you could query for all parcel addresses by Zip Code. So maybe it is possible in your location, maybe not, but it would take some effort.
I can at least give you a couple maps:
hipcodes.com/Virginia/Reston
hipcodes.com/Virginia/Herndon
steve