def permutations(items):
    if len(items) == 1:
        yield tuple(items)
        return
    for index, fixed in enumerate(items):
        without_fixed = items[:index] + items[index + 1:]
        for x in permutations(without_fixed):
            yield (fixed, *x)


for p in permutations(list('abcd')):
    print(''.join(p))