Detecta las URL en una cadena y envuélvelas con la etiqueta "<a href ..."

Estoy buscando escribir algo que parece que debería ser lo suficientemente fácil, pero por alguna razón me cuesta mucho entenderlo.

Estoy buscando escribir una función de python que, cuando se pasa una cadena, pasará esa cadena de nuevo con codificación HTML en torno a las URL.

unencoded_string = "This is a link - http://google.com"

def encode_string_with_links(unencoded_string):
    # some sort of regex magic occurs
    return encoded_string

print encoded_string

'This is a link - <a href="http://google.com">http://google.com</a>'

¡Gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta