Como en la respuesta a la que se vincula el comentario de Mihir Dave, no hay diferencia con SQL si pasa %% en lugar de % . Desde un solo % coincide con cero o más caracteres, luego cada uno de los metacaracteres en %% también coincidiría con cero o más y, en última instancia, la misma cadena coincidiría de una forma u otra.
Pero supongo que su código heredado es anterior a Python 2.6 que usa % como un metacarácter en formato de cadena, y debe duplicarlo como %% para obtener un único literal % personaje.
Véase también:
- ¿Cómo puedo seleccionar porcentaje de escape (%) en cadenas de Python?
- https://docs.python.org/ 2.6/library/stdtypes.html#string-formatting-operations