Вы можете указать необязательное поле, для которого требуется флаг:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("A", nargs="+")
parser.add_argument("--b", nargs="+")
args = parser.parse_args(
["a", "b", "c", "d", "--b", "1", "2", "3"]
)
print(args)
# Namespace(A=['a', 'b', 'c', 'd'], b=['1', '2', '3'])
Все, что для этого требуется, - это то, что другой параметр переменной длины указан после позиционных аргументов.
Как заметка, видя, что python 2.7 больше не поддерживается (по состоянию на 01.01.2020), вы можете перейти к python 3 и внести свои критические изменения сейчас.