We present PyXtal, a new package based on the Python programming language, used to generate structures with specific symmetry and chemical compositions for both atomic and molecular systems. This software provides support for various systems described by point, rod, layer, and space group symmetries. With only the inputs of chemical composition and symmetry group information, PyXtal can automatically find a suitable combination of Wyckoff positions with a step-wise merging scheme. Further, when the molecular geometry is given, PyXtal can generate different dimensional organic crystals with molecules occupying both general and special Wyckoff positions. Optionally, PyXtal also accepts user-defined parameters (e.g., cell parameters, minimum distances and Wyckoff positions). In general, PyXtal serves three purposes: (1) to generate custom structures, (2) to modulate the structure by symmetry relations, (3) to interface the existing structure prediction codes that require the generation of random symmetric structures. In addition, we provide several utilities that facilitate the analysis of structures, including symmetry analysis, geometry optimization, and simulations of powder X-ray diffraction (XRD). Full documentation of PyXtal is available at https://pyxtal.readthedocs.io. Program summaryProgram Title: PyXtalCPC Library link to program files:https://doi.org/10.17632/wfyxyhjzwx.1Licensing provisions: MIT [1]Programming language: Python 3Nature of problem: Knowledge of structure at the atomic level is the key to understanding materials’ properties. Typically, the structure of a material can be determined either from experiment (such as X-ray diffraction, spectroscopy, microscopy) or from theory (e.g., enhanced sampling, structure prediction). In many cases, the structure needs to be solved iteratively by generating a number of trial structure models satisfying some constraints (e.g., chemical composition, symmetry, and unit cell parameters). Therefore, it is desirable to have a computational code that is able to generate such trial structures in an automated manner.Solution method: The PyXtal package is able to generate many possible random structures for both atomic and molecular systems with all possible symmetries. To generate the trial structure, the algorithm can either start with picking the symmetry sites randomly from high to low multiplicities, or use sites that are predefined by the user. For molecules, the algorithm can automatically detect the molecules’ symmetry and place them into special Wyckoff positions while satisfying their compatible site symmetry. With the support of symmetry operations for point, rod, layer and space groups, PyXtal is suitable for the computational modeling of systems from zero, one, two, and three dimensional bulk crystals.