diff --git a/distinct_permutation.rb b/distinct_permutation.rb
new file mode 100644
index 0000000..1f44f0a
--- /dev/null
+++ b/distinct_permutation.rb
@@ -0,0 +1,8 @@
+def f(a, b)
+ (0...b.size**a.size)
+ .map {|i| i.to_s(b.size).rjust(b.size + 1, ?0).chars.map(&:to_i).map {|j| b.fetch(j) }}
+ .map { a.zip(_1) }
+end
+
+pp f((1..3).to_a, (?a..?b).to_a)
+# pp f((1..4).to_a, (?a..?c).to_a)