from collections import Counter def func(s): chars = Counter(s) ans = [] signal = 0 while chars: group = list(chars) group.sort(reverse=signal) ans.extend(group) chars -= Counter(group) signal = 1-signal return ''.join(ans) print(func(s = "leetcode"))