Bash autocomplete: first list files then cycle through them
This seems close to what you want:
bind "TAB:menu-complete"
bind "set show-all-if-ambiguous on"
This is what I use. As far as I can tell it does exactly what you want.
# make tab cycle through commands after listing
bind '"\t":menu-complete'
bind "set show-all-if-ambiguous on"
bind "set completion-ignore-case on"
bind "set menu-complete-display-prefix on"
This works on Mac (10.13 & 10.14) and Ubuntu (16.04 & 18.04).