---
title: Permutation (v2.1)
description: API reference for qiskit.circuit.library.Permutation in qiskit v2.1
source: https://eu-de.quantum.cloud.ibm.com/docs/en/api/qiskit/2.1/qiskit.circuit.library.Permutation
---

# Permutation

*class* `qiskit.circuit.library.Permutation(num_qubits, pattern=None, seed=None)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.1/qiskit/circuit/library/generalized_gates/permutation.py#L28-L100)

Bases: [`QuantumCircuit`](/docs/api/qiskit/2.1/qiskit.circuit.QuantumCircuit "qiskit.circuit.quantumcircuit.QuantumCircuit")

An n\_qubit circuit that permutes qubits.

Return an n\_qubit permutation circuit implemented using SWAPs.

> **Deprecated since version 2.1**
>
> The class `qiskit.circuit.library.generalized_gates.permutation.Permutation` is deprecated as of Qiskit 2.1. It will be removed in Qiskit 3.0. Use PermutationGate instead.

**Parameters**

- **num\_qubits** ([*int*](https://docs.python.org/3/library/functions.html#int)) – circuit width.
- **pattern** ([*list*](https://docs.python.org/3/library/stdtypes.html#list)*\[*[*int*](https://docs.python.org/3/library/functions.html#int)*] | np.ndarray | None*) – permutation pattern, describing which qubits occupy the positions 0, 1, 2, etc. after applying the permutation, that is `pattern[k] = m` when the permutation maps qubit `m` to position `k`. As an example, the pattern `[2, 4, 3, 0, 1]` means that qubit `2` goes to position `0`, qubit `4` goes to the position `1`, etc. The pattern can also be `None`, in which case a random permutation over `num_qubits` is created.
- **seed** ([*int*](https://docs.python.org/3/library/functions.html#int) *| None*) – random seed in case a random permutation is requested.

**Raises**

[**CircuitError**](/docs/api/qiskit/2.1/circuit#qiskit.circuit.CircuitError "qiskit.circuit.CircuitError") – if permutation pattern is malformed.

**Reference Circuit:**

![Diagram illustrating the previously described circuit.](https://eu-de.quantum.cloud.ibm.com/docs/images/api/qiskit/2.1/qiskit-circuit-library-Permutation-1.avif)

**Expanded Circuit:**

![Diagram illustrating the previously described circuit.](https://eu-de.quantum.cloud.ibm.com/docs/images/api/qiskit/2.1/qiskit-circuit-library-Permutation-2.avif)

## Attributes

### name

Type: `str`

A human-readable name for the circuit.

**Example**

```python
from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)
```

```text
my_circuit
```
