random.shuffle(aslice)
for j in aslice:
    yield input_list[j]
yield input_list[fixed]
aslice = list(range(i, len(input_list)))
random.shuffle(aslice)
for j in aslice:
    yield input_list[j]
print('\n'.join(' '.join((str(i), str(n))) for i, n in enumerate(
    partial_shuf(list(range(4, 36)), [0, 4, 9, 17, 25, 40]))))
assert sorted(partial_shuf(list(range(4, 36)), [0, 4, 9, 17, 25, 40])) == list(range(4, 36))
Fix first element, shuffle the rest of a list/array