Sorry for off topic. Isn't this chain.from_iterable just a historical legacy... now we have PEP 448 and I see no differences* between chain(*iterable) vs chain.from_iterable(iterable). Are there?* chain.from_iterable is a little bit faster for small iterables, but if at that time we had PEP 448, would this small speed benefits be enough to make additional method to chain. I think no.-gdg