ideally you'd have created those foreign keys giving them an explicit name. otherwise, there's two other avenues. One is to use the Inspector, like this:
from sqlalchemy.engine.reflection import Inspector
insp = Inspector.from_engine(op.get_bind())
fks = insp.get_foreign_keys("tablename")
that would give you back a list of dictionaries, the fields in each are listed here:
http://docs.sqlalchemy.org/en/rel_0_7/core/schema.html?highlight=inspector#sqlalchemy.engine.reflection.Inspector.get_foreign_keys
using the inspector requires a live connection though, so won't work in --sql mode.
If you needed to work in --sql mode, you'd need to devise a SQL sequence that declares variables and queries for the database's schema information which are then passed to the ALTER command. This would need to be all specific to the database. These are fairly tedious to come up with and you'd need to google/read docs to work them out, for example here's one Alembic does for SQL server, I've stuck it inside of op.execute() to illustrate:
op.execute("""
declare @const_name varchar(256)
select @const_name = [name] from sys.check_constraints
where parent_object_id = object_id('sometable')
and col_name(parent_object_id, parent_column_id) = 'somecolumn'
exec('alter table sometable drop constraint ' + @const_name)
""")