Исправлена ошибка, с которой вы ссылаетесь (ошибка 4787391) была исправлена на Java 8. Даже если вы используете более старую версию Java, подход System.getProperty("user.home")
, вероятно, по-прежнему остается лучшим. Подход user.home
, похоже, работает в очень большом числе случаев. 100% пуленепробиваемое решение в Windows сложно, потому что Windows имеет смещающуюся концепцию того, что означает домашний каталог. Если user.home
недостаточно хорош для вас, я бы предложил выбрать определение home directory
для окон и использовать его, получив соответствующую переменную среды с помощью System.getenv(String)
.
В модуле itertools есть функция: itertools.product . Он делает именно то, что вам нужно.
Пример:
a = [None,1,2]
list(itertools.product(a, repeat=3))
[(None, None, None),
(None, None, 1),
(None, None, 2),
(None, 1, None),
(None, 1, 1),
(None, 1, 2),
(None, 2, None),
(None, 2, 1),
(None, 2, 2),
(1, None, None),
(1, None, 1),
(1, None, 2),
(1, 1, None),
(1, 1, 1),
...
Ваша проблема может быть решена с помощью этого кода:
[list(zip(a, elem))for elem in itertools.product(b, repeat=3)]