Aqui está um exemplo simples:
from gi.repository import Gtk
class MyExample(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self)
self.connect("delete-event", Gtk.main_quit)
liststore = Gtk.ListStore(str)
for match in ["test1", "test2", "test3", "spam", "foo", "eggs", "bar"]:
liststore.append([match])
completion = Gtk.EntryCompletion()
completion.set_model(liststore)
completion.set_text_column(0)
entry = Gtk.Entry()
entry.set_completion(completion)
self.add(entry)
self.show_all()
if __name__ == "__main__":
app = MyExample()
Gtk.main()
Você só precisará preencher dinamicamente o liststore com os valores desejados. Exibir um número próximo a ele pode ser tão trivial quanto anexá-lo à string que você está adicionando ao liststore ou você pode criar uma segunda coluna nele. Isso tudo depende do seu código e não é possível responder, mas isso deve fazer você ir.
Você pode até criar a maior parte do código acima no Glade, se quiser.