You need to say:
shopt -s direxpand
Now saying:
cd $A/TAB
(note the /
before TAB) would present directories without adding space.
From the manual:
direxpand
If set, bash replaces directory names with the results
of word expansion when performing filename completion.
This changes the contents of the readline editing buf‐
fer. If not set, bash attempts to preserve what the
user typed.
Moreover, instead of setting a variable by saying:
A="~/tmp"
or
A=~/tmp
say
A="${HOME}/tmp"