I think protocol would be appropriate here. You can define your protocol with the methods you need from Iterator
class MultiIterable(Protocol):
def __next__(self) -> None:
...
def __iter__(self) -> None:
...
def loop_twice(param: MultiIterable):
for thing in param:
print(thing)
for thing in param:
print(f"{thing} again")
https://typing.python.org/en/latest/spec/protocol.html#protocols