Here is the Python code using boto will download all versions of files found in a bucket I wanted the same thing, so I tried this, trust me its good and will work. Also, It's possible that a large number of versions will require paging through the result set.
conn = boto.connect_s3()
bucket = conn.get_bucket('BUCKET')
# Get a list of all versions contained in the bucket
versions = bucket.list_versions(prefix='FILENAME')
for v in versions:
# Save the version to a filename based on the Last Modified date