The content of a droplist cannot be dynamically or programmatically controlled in Axure. The best way to do this is with a repeater, which gives you the ability to sort, filter, add and remove items from a list. If you haven’t used repeaters before you may be in for a long learning curve. It is possible to fairly quickly leverage an existing example, and there are plenty here, if you search the forum for “repeater droplist”. I’m away from my computer just now or I’d search for a good one or make a quick demo for you.
The basic approach is to build your list of 4 items as a repeater widget instead of using a droplist widget, then hide/show it when user clicks the droplist button. When the user successfully adds a contact preference, like email, you would filter the repeater to hide the “E-Mail” row (list item). Then, if the user adds another preference, like Mobile, you’d add a filter to hide that as well, etc.
A different solution would be more of a “brute force” approach, where you could create your standard droplist, then make a dynamic panel (dp) from it, then duplicate the dp states to include all the possible permutations—all 4 items, then all combinations of 3 items, etc. For a list with 4 items, this should be 24 states. Unwieldy, but not impossible. Fairly straightforward logic to show the appropriate dp state when user adds a contact preference.