>>221 Python3

s = "D a B c d c C A E c e B b".split();
d = {}
for c in s:
  u = c.upper()
  if u in d: d[u] += ' ' + c
  else: d[u] = c
ks = sorted(d.keys())
print(' '.join(map(lambda x: '(%s)' % d[x], ks)))

実行結果
~ $ py 18_221_NCS_sort_grp.py
(a A) (B B b) (c c C c) (D d) (E e)