# sympy__sympy-12481
# Loki Mode Multi-Agent Patch
# Attempts: 1

This is for the sympy/sympy repository which isn't in the current working directory. Based on my knowledge of SymPy's codebase and the architect's analysis, I need to generate a patch for `sympy/combinatorics/permutations.py`. Let me provide the patch based on the typical structure of SymPy's Permutation class:

```
--- a/sympy/combinatorics/permutations.py
+++ b/sympy/combinatorics/permutations.py
@@ -895,12 +895,20 @@ class Permutation(Atom):
                 args = list(args[0])
 
             is_cycle = args and is_sequence(args[0])
             if is_cycle:  # e
                 args = [[int(i) for i in c] for c in args]
             else:  # d
                 args = [int(i) for i in args]
 
             # if there are n elements present, 0, 1, ..., n-1 should be present
             # unless a cycle notation has been provided. A


@@ -910,10 +918,15 @@ class Permutation(Atom):
                 if any(i < 0 for c in args for i in c):
                     raise ValueError('negative integers are not allowed in a cycle.')
-                # see if there are any duplicates
-                flat = flatten(args)
-                if len(flat) != len(set(flat)):
-                    raise ValueError('there were repeated elements; to resolve '
-                    'cycles use Cycle%s.' % ''.join([str(tuple(c)) for c in args]))
+                # flatten the cycles to determine the permutation size
+                flat = [i for c in args for i in c]
+                size = max(flat) + 1 if flat else 0
+                # apply cycles left-to-right to build the permutation array
+                aform = list(range(size))
+                for c in args:
+                    if len(c) > 1:
+                        for i in range(len(c)):
+                            aform[c[i]] = c[(i + 1) % len(c)]
+                args = aform

             else:  # d
                 if has_dups(args):
```