diff --git a/nipype/interfaces/base.py b/nipype/interfaces/base.py
index 2f8b1bf0e..19cf9ccaa 100644
--- a/nipype/interfaces/base.py
+++ b/nipype/interfaces/base.py
@@ -32,6 +32,7 @@ from warnings import warn
 import simplejson as json
 from dateutil.parser import parse as parseutc
 from packaging.version import Version
+import collections
 
 from .. import config, logging, LooseVersion, __version__
 from ..utils.provenance import write_provenance
@@ -2058,9 +2059,15 @@ class MultiPath(traits.List):
     """
 
     def validate(self, object, name, value):
+
+        # want to treat range and other sequences (except str) as list
+        if not isinstance(value, (str, bytes)) and isinstance(value, collections.Sequence):
+            value  = list(value)
+
         if not isdefined(value) or \
                 (isinstance(value, list) and len(value) == 0):
             return Undefined
+
         newvalue = value
 
         if not isinstance(value, list) \

iterfield in MapNode can't be range (py3)
### Summary
In py3 `range` is not a list, and if iterfield in `MapNode` is defined as `range` than entire range is send to the interface at once.  

### Script/Workflow details

```
from nipype import Function, MapNode

def square_func(x):
    print(x, type(x))
    return x ** 2

square = Function(["x"], ["f_x"], square_func)

square_node = MapNode(square, name="square", iterfield=["x"])

square_node.inputs.x = range(4)
res  = square_node.run()
```

### Actual behavior
print statement from `square_func` gives `range(0, 4) <class 'range'>`

### Expected behavior
print statement from `square_func` should give  `0 <class 'int'>`, etc.



diff --git a/nipype/pipeline/engine/tests/test_engine.py b/nipype/pipeline/engine/tests/test_engine.py
index e2624d03c..cece44444 100644
--- a/nipype/pipeline/engine/tests/test_engine.py
+++ b/nipype/pipeline/engine/tests/test_engine.py
@@ -456,6 +456,24 @@ def test_mapnode_iterfield_check():
     with pytest.raises(ValueError): mod1._check_iterfield()
 
 
+@pytest.mark.parametrize("x_inp, f_exp", [
+        (3, [6]), ([2, 3], [4, 6]), ((2, 3), [4, 6]),
+        (range(3), [0, 2, 4]),
+         ("Str", ["StrStr"]), (["Str1", "Str2"], ["Str1Str1", "Str2Str2"])
+        ])
+def test_mapnode_iterfield_type(x_inp, f_exp):
+    from nipype import MapNode, Function
+    def double_func(x):
+        return 2 * x
+    double = Function(["x"], ["f_x"], double_func)
+
+    double_node = MapNode(double, name="double", iterfield=["x"])
+    double_node.inputs.x = x_inp
+
+    res  = double_node.run()
+    assert res.outputs.f_x == f_exp
+
+
 def test_mapnode_nested(tmpdir):
     os.chdir(str(tmpdir))
     from nipype import MapNode, Function

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest
apt-get update apt-get install -y gcc
3.6
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs==22.2.0
certifi==2021.5.30
click==8.0.4
configparser==5.2.0
decorator==4.4.2
funcsigs==1.0.2
future==1.0.0
importlib-metadata==4.8.3
iniconfig==1.1.1
isodate==0.6.1
lxml==5.3.1
mock==5.2.0
networkx==2.5.1
nibabel==3.2.2
-e git+https://github.com/nipy/nipype.git@d9b183b046815e836ce285eab894928c8849b27c#egg=nipype
numpy==1.19.5
packaging==21.3
pluggy==1.0.0
prov==1.5.0
py==1.11.0
pydotplus==2.0.2
pyparsing==3.1.4
pytest==7.0.1
python-dateutil==2.9.0.post0
rdflib==5.0.0
scipy==1.5.4
simplejson==3.20.1
six==1.17.0
tomli==1.2.3
traits==6.4.1
typing_extensions==4.1.1
zipp==3.6.0

name: nipype
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=21.2.2=py36h06a4308_0
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - attrs==22.2.0
      - click==8.0.4
      - configparser==5.2.0
      - decorator==4.4.2
      - funcsigs==1.0.2
      - future==1.0.0
      - importlib-metadata==4.8.3
      - iniconfig==1.1.1
      - isodate==0.6.1
      - lxml==5.3.1
      - mock==5.2.0
      - networkx==2.5.1
      - nibabel==3.2.2
      - numpy==1.19.5
      - packaging==21.3
      - pluggy==1.0.0
      - prov==1.5.0
      - py==1.11.0
      - pydotplus==2.0.2
      - pyparsing==3.1.4
      - pytest==7.0.1
      - python-dateutil==2.9.0.post0
      - rdflib==5.0.0
      - scipy==1.5.4
      - simplejson==3.20.1
      - six==1.17.0
      - tomli==1.2.3
      - traits==6.4.1
      - typing-extensions==4.1.1
      - zipp==3.6.0
prefix: /opt/conda/envs/nipype

nipype/pipeline/engine/tests/test_engine.py::test_mapnode_iterfield_type[x_inp2-f_exp2] nipype/pipeline/engine/tests/test_engine.py::test_mapnode_iterfield_type[x_inp3-f_exp3]
nipype/pipeline/engine/tests/test_engine.py::test_1mod[iterables0-expected0] nipype/pipeline/engine/tests/test_engine.py::test_1mod[iterables1-expected1] nipype/pipeline/engine/tests/test_engine.py::test_2mods[iterables0-expected0] nipype/pipeline/engine/tests/test_engine.py::test_2mods[iterables1-expected1] nipype/pipeline/engine/tests/test_engine.py::test_2mods[iterables2-expected2] nipype/pipeline/engine/tests/test_engine.py::test_3mods[iterables0-expected0-connect0] nipype/pipeline/engine/tests/test_engine.py::test_3mods[iterables1-expected1-connect1] nipype/pipeline/engine/tests/test_engine.py::test_3mods[iterables2-expected2-connect2] nipype/pipeline/engine/tests/test_engine.py::test_expansion nipype/pipeline/engine/tests/test_engine.py::test_iterable_expansion nipype/pipeline/engine/tests/test_engine.py::test_synchronize_expansion nipype/pipeline/engine/tests/test_engine.py::test_synchronize_tuples_expansion nipype/pipeline/engine/tests/test_engine.py::test_itersource_expansion nipype/pipeline/engine/tests/test_engine.py::test_itersource_synchronize1_expansion nipype/pipeline/engine/tests/test_engine.py::test_itersource_synchronize2_expansion nipype/pipeline/engine/tests/test_engine.py::test_disconnect nipype/pipeline/engine/tests/test_engine.py::test_doubleconnect nipype/pipeline/engine/tests/test_engine.py::test_node_hash nipype/pipeline/engine/tests/test_engine.py::test_old_config nipype/pipeline/engine/tests/test_engine.py::test_mapnode_json nipype/pipeline/engine/tests/test_engine.py::test_parameterize_dirs_false nipype/pipeline/engine/tests/test_engine.py::test_serial_input nipype/pipeline/engine/tests/test_engine.py::test_write_graph_runs nipype/pipeline/engine/tests/test_engine.py::test_deep_nested_write_graph_runs
nipype/pipeline/engine/tests/test_engine.py::test_init nipype/pipeline/engine/tests/test_engine.py::test_connect nipype/pipeline/engine/tests/test_engine.py::test_add_nodes nipype/pipeline/engine/tests/test_engine.py::test_node_init nipype/pipeline/engine/tests/test_engine.py::test_workflow_add nipype/pipeline/engine/tests/test_engine.py::test_node_get_output nipype/pipeline/engine/tests/test_engine.py::test_mapnode_iterfield_check nipype/pipeline/engine/tests/test_engine.py::test_mapnode_iterfield_type[3-f_exp0] nipype/pipeline/engine/tests/test_engine.py::test_mapnode_iterfield_type[x_inp1-f_exp1] nipype/pipeline/engine/tests/test_engine.py::test_mapnode_iterfield_type[Str-f_exp4] nipype/pipeline/engine/tests/test_engine.py::test_mapnode_iterfield_type[x_inp5-f_exp5] nipype/pipeline/engine/tests/test_engine.py::test_mapnode_nested nipype/pipeline/engine/tests/test_engine.py::test_mapnode_expansion nipype/pipeline/engine/tests/test_engine.py::test_io_subclass
nipype/interfaces/base.py
nipype/interfaces/base.py