I have solved this issue by adding a custom completer. It now works as expected.
import readline
import rlcompleter
c = rlcompleter.Completer()
def complete(text, state):
buffer = readline.get_line_buffer()
first = c.complete(buffer, 0)
if state == 0:
return first
current = c.complete(buffer, state)
if current != first:
return current
readline.parse_and_bind('bind ^I rl_complete')
readline.set_completer(complete)